关于Vue项目组件全局注册的一些建议
在日常的工作中,我们项目中会有些公用的组件,可能有的同学提倡将这些组件全局注册,我个人的建议尽量避免全局注册,当然仁者见仁,智者见智
每个人都有自己想法和思路,下面我就简单说一下,我为什么不建议做组件全局注册
- 全局注册在大型项目中使项目的依赖关系变得不是那么明确,不太容易定位组件的具体位置以及实现,可能会影响长期的可维护性
尤其是多人共同开发的项目,如果大家都滥用全局注册,后果就是项目的组件依赖关系混乱,后期维护成本过大 - 全局注册但并没有被使用的组件,无法在生产打包时被自动移除
在Vue3.0中,Vite工具有自定义的tree-shaking,会在打包的时候检查我们项目的依赖关系,自动将没有被使用过的代码移除,但是对于全局注册的组件并不生效
假如你全局注册了一个组件但是实际上它并没有被使用,打包之后它仍然会出现在打包后的JS文件中 - Vue3.0 提倡局部注册
在使用(script steup)的单文件组件中,导入的组件可以直接在模板中使用,无需注册,哪里需要就在哪里引入,使得组件之间的依赖关系更加明确并且对tree-shaking更加友好
所以个人建议大家在日常的工作中还是尽量采用局部注册的方式来进行组件的引用