提前调用 defineComputed

来源:5-2 计算属性 VS 侦听属性(2)

Arey_jy

2018-11-14

视频中说到,在 Comp.prototype 提前调用 defineComputed,是为了给多组件共享用。平时工作中,没有遇到过 computed 共享案例,有点不太理解 黄老师能举个例子吗

写回答

1回答

ustbhuangyi

2018-11-16

我的意思是给同一个组件的多个实例所共享,因为 initComputed 发生在 Vue.extend 阶段,也就是组件构造器的生成阶段。这样未来在实例化组件的的时候,这些已经执行过 defineComputed 的 key 就不需要重复去执行了。

1
4
哈哈大笑x
老师您好,同一组件在不同地方使用的实例是不一样的,但是构造器是一样的,然后配合Vue.extend里面cachedCtors缓存方法。同一组件只执行一次Vue.extend获取构造器,也就是只执行一次defineComputed,后面还有使用这个组件的就直接返回这个构造器,也就不需要再defineComputed,进而得到优化,我这样理解不知道对不对
2020-03-14
共4条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程