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

243

我刚刚使用命令行(CLI)初始化了一个Vue.js项目。 CLI创建了一个src/componentssrc/views文件夹。

我已经几个月没有使用Vue项目了,这个文件夹结构对我来说很新奇。

在使用vue-cli生成的Vue项目中,viewscomponents文件夹有什么区别?


10
我认为它们在本质上没有区别,因为它们都是单文件视图组件。但是你的页面视图(Home.vue、About.vue、Checkout.vue等)可以与你的组件(Button.vue、LoadingSpinner.vue等)分开保存。 - Jeff
4
这篇文章阐述了结构上的差异:https://blog.pusher.com/new-vue-cli-simplifies-development/ - connexo
32
@Jeff,你是政治家吗?如果不是的话,你应该成为一个。你刚刚重复了Ops的问题,但还成功地让它看起来像是个答案。哈哈。 - PrestonDocks
4
@PrestonDocks 我认为他的回答在举例使用情况方面很有启发性。他指出视图是页面(主页、关于、结账),组件是页面的较小元素(按钮、加载旋转器等)。我认为这回答了问题。 - pantuofermo
15个回答

1

视图基本上关注那些通过自身来表示自己的组件,它们基本上是独一无二的。比如,注册页面、登录页面等等。 如果我们谈论组件,那么它们被称为我们需要它们的地方,就像可重用的警告组件一样,我们也可以使用混合(mixin),但是例如弹出组件,我们在其中放置数据并在多个位置使用它。

对它们有深入的了解:

  1. 视图:视图文件夹通常包含应用程序的高级视图或页面。视图代表用户可以导航到的不同屏幕或路由。这些视图通常与特定的路由相关联,并且可能包含多个组件。视图负责编排组件并管理整个页面的状态和行为。

  2. 组件:另一方面,组件文件夹包含可重用且自包含的UI组件。组件是用户界面的模块化部分,可以在多个视图或页面中使用。它们封装了特定的功能或视觉元素,并且可以拥有自己的状态和行为。组件经常在视图内部使用,通过组合和组合较小、可重用的组件来构建复杂的界面。

总结: 简而言之,主要区别在于视图代表应用程序的高级屏幕或页面,而组件是较小的可重用UI元素,可以在视图内部甚至其他组件内使用。将视图与组件分离有助于保持项目结构的清晰和有序,并促进可重用性和模块化。
行为: 当您使用Vue CLI创建项目时,默认项目结构会生成一个推荐和有组织的设置,用于您的Vue.js应用程序。默认项目结构中包含视图和组件文件夹的原因是基于Vue.js应用程序开发中常见的开发模式和最佳实践。
默认项目结构旨在促进关注点的清晰分离和模块化开发。以下是对为什么包含这些文件夹的简要解释:
视图。
组件。
通过遵循这个项目结构,您可以创建一个可扩展和可维护的Vue.js应用程序,因为它鼓励代码的可重用性、模块化和关注点的分离。然而,您可以根据特定项目需求自由定制和调整项目结构。Vue CLI提供了灵活性和可配置性,允许您根据需要修改项目结构。

0

它们的区别在于它们所执行的功能。视图用于正确表示您的页面,以便您可以前后导航,而组件则是构成您的页面的部分。


0

这两个文件夹都包含Vue组件,'views'文件夹应该包含根级别的组件,其他组件将被导入。所谓的'其他组件'位于'components'文件夹中。让我们举个例子来说明。

假设您有一个网站yourname.com有3个根级页面。

  • yourname.com
  • yourname.com/about
  • yourname.com/price

你的“views”文件夹将有3个组件。“about.vue”,“index.vue”和“price.vue”。这些文件将在路由器文件中导入,或者可以直接在app.vue文件中导入进行路由。这些视图内部可能有多个组件,例如“price-card.vue”,“contact-card.vue”等。这些文件通常位于名为“components”的文件夹中。您可以在“views”文件夹中拥有的vue文件中导入这些组件,然后渲染它们。


0

只需按照逻辑顺序安排项目。您仍然可以在视图文件夹中创建组件,但将项目分开以使代码更清晰是更好的方法。


0
通常组件被导入到视图中。如果您希望,视图将放置在路由器视图中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接