请稍等 ...
×

采纳答案成功!

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

$store的挂载疑惑

老师,您好。在vuexInit函数中 是给每一个组件实例都分别执行一次beforeCreate来挂载KaTeX parse error: Expected 'EOF', got '的' at position 6: store的̲吧?假如options.sto…store,不存在的话,就向上父组件中找,组件的beforeCreate的执行顺序是由父到子,所以每个子组件都会从父组件中找到$store。我这么理解对吗?

有个疑问就是为什么要在每个组件中都判断进行挂载呢,不直接在根组件的beforeCreate中将$store挂载Vue.prototype中呢?

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2019-08-29 10:06:17

beforeCreate 只是它把 $store 注入到当前实例的原因,实际上 store 对象只在根组件,而子组件是通过递归的 parent 指针一层层往上找,直到找到根组件的 store。
store 如果直接挂在原型上会侵入了 Vue,并不好,因为没有规定 Vue 是单例的,一个页面存在多个 Vue 实例也是可以的,如果我想做多 store 的话,源码这种做法是可以支持的,但是如果直接挂到原型上就做不了了。

1 回复 有任何疑惑可以回复我~
  • 好像不是一层层递归,因为父组件先执行了 beforeCreate 从 父组件的父组件拿到了 $store,然后子组件执行 beforeCreate  从父组件拿到 $store,也就是new Vue的时候一定要传 store 的原因吧 - -
    回复 有任何疑惑可以回复我~ 2020-07-01 00:40:19
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信