Skip to content

lq782655835/global-vs-part-register-for-vue-componnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

babel-import-demo

按需加载Demo

问题:在按需加载前提条件下,全局注册Componnets和多个页面局部注册Componnets对打包大小是否有影响?

过程实验:

  1. 多个页面对a-button都是局部注册(源码中就是改方式),看最终打包大小
  2. 对a-button全局注册,看最终打包大小

结果:app.js基本都是12k,chunk-vendors都是927k,一致。

结论:

  1. 对于多页面共享组件,全局引入和局部引入都是一致的,对打包大小没有影响。
  2. 在没有歧义情况下(知道局部组件的来源),推荐使用全局注册

分析原因:详细可看笔者Vue源码分析系列 - 组件系统

  • 注册组件,重点是把 components 合并到 vm.$options.components 上,这样我们就可以在 resolveAsset 的时候拿到这个组件的构造函数,方便后续创建。

  • 局部注册和全局注册不同的是,只有该类型的组件才可以访问局部注册的子组件,而全局注册是扩展到 Vue.options 下,所以在所有组件创建的过程中,都会从全局的 Vue.options.components 扩展到当前组件的 vm.$options.components 下,这就是全局注册的组件能被任意使用的原因。

About

全局注册 vs 局部注册 打包大小实验Demo

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages