Vue项目中的views和components文件夹有什么区别?


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


10
@Jeff是您的政治人物,如果不是,那么您应该是。您只是重复了Ops问题,但设法使它看起来像一个答案。大声笑。
PrestonDocks

Answers:


175

首先,src/components和文件夹都src/views包含Vue组件。

关键区别在于某些Vue组件充当路由视图

在Vue中(通常是Vue Router)处理路由时,将定义路由以切换组件中使用的当前视图<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这样的企业样板。
  • 有人称它为Pages而不是Views
  • 有些人将所有组件都放在同一文件夹下。

选择最适合您正在处理的项目的应用程序结构。


6
这是100%正确的。您可以采用任何对您有意义的方式来构建应用。我个人对所有路线都使用“ src / pages”。在该文件夹中,我将为站点的每个“区域”创建一个子文件夹。示例“ src / pages / questions”,在该文件夹中,我将拥有一个index.vue,其中将包含问题列表。我将有一个add.vue,它将是添加问题等的页面。这些“页面”通常简单地组装所需的组件以构成“页面”。在我的“ src / components”文件夹中,我将为导航,表单元素,自定义共享组件等创建子文件夹……
Tim Wickstrom,

我假设像弹出窗口/模态窗口之类的组件src/components按此约定运行?
西蒙·泰尔

@Ricky,请问一下Anthone Gore的书“ Full-Stack Vue.js 2和Laravel 5”的github中与源代码相关的Vue.JS问题:stackoverflow.com/questions/ 59245577 /…?特别需要看看编辑:OP的部分
Istiaque艾哈迈德

我们可以说视图内的组件是组件的集合吗?例如,我的列表视图可以具有多个组件,而这些组件是否在视图中的单个组件中容纳/包装?
Aayush

20

我认为这更多是一种惯例。可重用的内容可以保存在src / components文件夹中,与路由器绑定的内容可以保存在src / views中


6

通常建议将可重用的视图放置在src/components目录中。诸如页眉,页脚,广告,网格或任何自定义控件之类的示例,如样式化的文本框或按钮。可以在视图内部访问一个或多个组件。

一个视图可以具有一个或多个组件,并且一个视图实际上打算由导航URL访问。它们通常放置在中src/views

请记住,您不受限制通过url访问组件。您可以随意将任何组件添加到中,router.js也可以对其进行访问。但是,如果您打算这样做,可以将其移至src/views而不是将其放置在中src/components

组件是类似于asp.net Web表单的用户控件。

它只是为了更好的维护和可读性而构造代码。


1

这两个文件夹基本都相同,因为它们都包含组件,但是Vue的美感在于,将用作页面的组件(路由到类似页面进行导航)保留在/views文件夹中,而可重用组件(例如表单字段)保留在/components文件夹中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.