请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

全局组件和局部组件访问域

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

首先是否是无论是全局组件还是局部组件的构造函数都是继承自 Vue 构造函数,在每个组件构造函数的生成过程中,都有这样一段合并操作:

Sub.options = mergeOptions(
      Super.options,
      extendOptions
    )

目的是最终 vm.$options 可以访问到这 Vue.options 和 自定义 options。

问题1:以上我的理解是否正确?

我知道以下代码是将内置组件扩展到 Vue.options.component 上

//扩展内置组件,将内置组件合并到 Vue.options.component
  extend(Vue.options.components, builtInComponents)

问题2:那么全局组件是在哪里将自身的 options 扩展到了 Vue.options 上的?

问题3:由于不理解问题2,导致无法理解局部组件只能再该类型组件才可以访问这句话,“该类型组件”是什么意思?

正在回答

1回答

ustbhuangyi 2020-01-03 13:34:38

问题 1:理解基本正确
问题2,参考截图

https://img1.sycdn.imooc.com/szimg/5e0ed20a09e3def817701574.jpg

问题3,局部注册的组件,只有当你注册局部组件的宿主组件,才可以去访问局部组件。比如你在 A 组件内部局部注册了 B 组件,B 组件只能在 A 中使用,而不能在其它组件中使用。

0 回复 有任何疑惑可以回复我~
  • 提问者 六一888 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-01-03 15:17:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信