Vue 프로젝트에서보기와 구성 요소 폴더의 차이점은 무엇입니까?


128

방금 명령 줄 ( CLI)을 사용하여 Vue.js 프로젝트를 초기화했습니다. 는 CLI생성 된 src/componentssrc/views폴더를.

Vue 프로젝트로 작업 한 지 몇 달이 지났고 폴더 구조가 새롭습니다.

로 생성 된 Vue 프로젝트에서 viewscomponents폴더 의 차이점은 무엇입니까 vue-cli?


4
둘 다 단일 파일보기 구성 요소라는 점에서 다르지 않다고 생각합니다. 그러나 페이지 뷰 (Home.vue, About.vue, Checkout.vue)는 구성 요소 (Button.vue, LoadingSpinner.vue 등)와 별도로 유지할 수 있습니다.
Jeff

이 몇 가지 구조의 차이에 빛 빛나는 blog.pusher.com/new-vue-cli-simplifies-development
connexo

10
@Jeff는 당신은 정치인입니다. 방금 Ops 질문을 반복했지만 답변처럼 보이게 만들었습니다. LOL.
PrestonDocks

답변:


177

우선, 두 폴더 src/componentssrc/views에는 Vue 구성 요소가 포함되어 있습니다.

주요 차이점은 일부 Vue 구성 요소 가 라우팅을위한 역할을한다는 것 입니다.

일반적으로 Vue Router를 사용 하여 Vue 에서 라우팅을 처리 할 때 구성 요소 에서 사용되는 현재 보기 를 전환하기 위해 경로가 정의됩니다 <router-view>. 이러한 경로는 일반적으로에 있으며 src/router/routes.js다음과 같은 내용을 볼 수 있습니다.

import Home from '@/views/Home.vue'
import About from '@/views/About.vue'

export default [
  {
    path: '/',
    name: 'home',
    component: Home,
  },
  {
    path: '/about',
    name: 'about',
    component: About,
  },
]

아래 src/components에있는 구성 요소는 경로에서 사용되지 않는 반면 아래에있는 구성 요소 src/views는 적어도 하나의 경로에서 사용됩니다.


Vue CLI는 Vue 에코 시스템의 표준 도구 기준이되는 것을 목표로합니다. 다양한 빌드 도구가 합리적인 기본값과 함께 원활하게 작동하도록 보장하므로 구성을 다루는 데 며칠을 소비하는 대신 앱 작성에 집중할 수 있습니다. 동시에 꺼내지 않고도 각 도구의 구성을 조정할 수있는 유연성을 제공합니다.

Vue CLI는 신속한 Vue.js 개발을 목표로하며 단순성을 유지하고 유연성을 제공합니다. 목표는 다양한 기술 수준의 팀이 새 프로젝트를 설정하고 시작할 수 있도록하는 것입니다.

결국에는 편의성과 애플리케이션 구조의 문제입니다 .

  • 어떤 사람들은 엔터프라이즈 상용구 src/router와 같은 아래에 뷰 폴더를 갖고 싶어 합니다 .
  • 어떤 사람들 은 대신 페이지 라고 부릅니다 .
  • 어떤 사람들은 같은 폴더에 모든 구성 요소를 가지고 있습니다.

작업중인 프로젝트에 가장 적합한 애플리케이션 구조를 선택하십시오.


6
이것은 100 % 맞습니다. 이해하기 쉬운 방식으로 앱을 구성 할 수 있습니다. 개인적으로 모든 경로에 "src / pages"를 사용합니다. 이 폴더에서 사이트의 각 "영역"에 대한 하위 폴더를 만듭니다. 예제 "src / pages / questions"와 그 폴더에 질문 목록이있는 index.vue가 있습니다. 질문 등을 추가하기위한 페이지가 될 add.vue가있을 것입니다. 이러한 "페이지"는 일반적으로 "페이지"를 구성하는 데 필요한 구성 요소를 간단히 조합합니다. 내 "SRC / 구성 요소"나는 ... 등 탐색, 폼 요소, 사용자 정의 공유 구성 요소와 같은 것들에 대한 하위 폴더를 생성합니다 폴더
팀 Wickstrom

팝업 / 모달 창과 같은 구성 요소 src/components가이 규칙에 따라 이동한다고 가정합니다 .
Simon Thiel

@Ricky, Anthone Gore의 책 'Full-Stack Vue.js 2 and Laravel 5'의 github에서 소스 코드와 관련된 Vue.JS 질문을 살펴 보도록하겠습니다. stackoverflow.com/questions/ 59245577 /… ? 특히 OP
Istiaque Ahmed

뷰 내부의 구성 요소가 구성 요소 모음이라고 말할 수 있습니까? 예를 들어, 내 목록보기에는 여러 구성 요소가있을 수 있으며 이러한 구성 요소는보기의 단일 구성 요소 안에 포함 / 포장되어 있습니까?
Aayush

20

나는 그것이 더 많은 컨벤션이라고 생각합니다. 재사용 가능한 것은 src / components 폴더에 보관할 수 있습니다. 라우터에 연결된 것은 src / views에 보관할 수 있습니다.


6

일반적으로 재사용 가능한 뷰는 src/components디렉토리에 배치하는 것이 좋습니다 . 머리글, 바닥 글, 광고, 그리드 또는 스타일이 지정된 텍스트 상자 또는 버튼과 같은 사용자 지정 컨트롤과 같은 예. 뷰 내에서 하나 이상의 구성 요소에 액세스 할 수 있습니다.

보기에는 구성 요소가있을 수 있으며보기는 실제로 탐색 URL을 통해 액세스하도록되어 있습니다. 일반적으로 src/views.

URL을 통해 구성 요소에 액세스 할 수 없습니다. 에 구성 요소를 자유롭게 추가 router.js하고 액세스 할 수도 있습니다. 그러나 그렇게하려는 src/views경우 .NET에 배치하지 않고 로 이동할 수 있습니다 src/components.

구성 요소는 asp.net 웹 양식과 유사한 사용자 컨트롤입니다.

더 나은 유지 관리와 가독성을 위해 코드를 구조화하는 것입니다.


1

두 폴더는 모두 구성 요소를 포함하고 있기 때문에 기본적으로 동일하지만 Vue의 미학은 페이지로 작동 할 구성 요소 (탐색을 위해 같은 페이지로 라우팅 됨)는 /views폴더에 보관되고 양식 필드와 같은 재사용 가능한 구성 요소는 /components폴더에 보관된다는 것입니다. .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.