Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在本地注册Vue组件的优势是什么?_Javascript_Vue.js_Vuejs2_Vue Component_Vuex - Fatal编程技术网

Javascript 在本地注册Vue组件的优势是什么?

Javascript 在本地注册Vue组件的优势是什么?,javascript,vue.js,vuejs2,vue-component,vuex,Javascript,Vue.js,Vuejs2,Vue Component,Vuex,报告说: 全球注册通常并不理想。例如,如果您正在使用 像Webpack一样构建系统,全球注册所有组件意味着 即使您停止使用某个组件,它仍然可以包含在 你的最终版本。这不必要地增加了 用户必须下载JavaScript 如果我理解正确的话,使用本地注册不会减少文件的总大小,除非您忘记删除任何未使用的组件。如果在本地注册一个组件,该组件仍然会被拉入主JS文件(如果没有,那么即使在本地也无法使用该组件,因为代码将是未定义的) 这就给我留下了使用本地注册的边缘案例,以确保在停止使用组件时不会忘记删除全局组

报告说:

全球注册通常并不理想。例如,如果您正在使用 像Webpack一样构建系统,全球注册所有组件意味着 即使您停止使用某个组件,它仍然可以包含在 你的最终版本。这不必要地增加了 用户必须下载JavaScript

如果我理解正确的话,使用本地注册不会减少文件的总大小,除非您忘记删除任何未使用的组件。如果在本地注册一个组件,该组件仍然会被拉入主JS文件(如果没有,那么即使在本地也无法使用该组件,因为代码将是未定义的)

这就给我留下了使用本地注册的边缘案例,以确保在停止使用组件时不会忘记删除全局组件注册。当然,如果您停止使用组件,也可能忘记删除本地注册,在这种情况下,即使使用本地注册,您也会遇到同样的问题


似乎本地注册的主要用例是确保组件不能在其他地方使用。我在想什么样的危险可以预防呢?

当你只需要在一个地方安装一个组件时,它非常干净。例如,在
标题
组件中注册
NavBar
,因为它永远不会在其他地方使用,它为您提供了通过IDE导航到该组件的快速方法

如果您有两个名称相同的组件,例如来自两个名为
vue-button
的第三方组件,并且您需要在不同的位置使用它们,则可以避免冲突

我打赌也会有一些非常小的性能提升,因为您的Vue实例在使用该组件之前不会注册该组件,尽管这是更多的推测,可能并不重要


最后,我认为更多的是将代码划分到相关组中,这有助于组织。

感谢您的反馈,Jeff除了@Jeff的好理由外,您可能还想延迟加载应用程序的某些部分,因此这些组件应该在本地声明,而不是在全局声明。