我使用vue-cli + webpack作为我的开发环境,我在main.js
中包含/声明了大多数组件Vue.component('<name>',require('./components/<name>.vue'));
在开发/生产中是否有优势只在需要时导入组件,或者在main.js文件中执行它没有任何区别,因为我现在在做什么?
答案 0 :(得分:4)
我认为全局注册的主要好处是您的组件始终可用,而无需在每个组件中注册它。如果您注册自己的自定义组件并且您知道没有任何命名冲突,那么这很好。真正的问题是,如果您正在编写可在多个项目中重复使用的组件。
举个例子,我刚刚在vue
编写了一个星级应用程序,我计划在多个项目中使用并通过npm
发布,因此任何人都可以在他们的项目中使用该组件。主要组件本身需要另一个名为star
的组件。如果我要在全球注册star
,那么任何包含我的星级评分组件的项目现在都会有一个名为&#39; star&#39;的全局组件。但是,如果你已经注册了自己的名为star的组件,我们会得到命名冲突,这意味着一个组件将覆盖另一个组件:
当您根据需要注册组件时,可以避免任何命名冲突,因为已注册的组件仅限于其自己的范围。在以下示例中,两个组件都有一个名为&#39; message&#39;注册(并且两者都使用相同的模板),但每一个都引用了不同的消息&#39;组件,因此它们输出不同的消息: