修改Vue data中的任意属性,视图是否都会自动更新?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1175个文字,预计阅读时间需要5分钟。
面试官:看过Vue的源码吗?候选人:看过。面试官:那你说说,当你在Vue的data中随意更改一个属性,视图都会被更新吗?候选人:不会。面试官:为什么选择Vue?候选人:因为如果该属性没有被用到,就不会触发模板更新。
- 面试官:看过 Vue 的源码没?
- 候选者:看过。
- 面试官:那你说下
Vue data中随意更改一个属性,视图都会被更新吗? - 候选者:不会。
- 面试官:why?
- 候选者:如果该属性没有被用到 template 中,就没有必要去更新视图,频繁这样性能不好。
- 面试官:那 Vue 中是如何去实现该方案的?
- 候选者:在实例初始化过程中,利用
Object.defineProperty对 data 中的属性进行数据监听,如果在template中被使用到的属性,就被 Dep 类收集起来,等到属性被更改时会调用notify更新视图。 - 面试官:那你怎么知道那些属性是在 template 被用到的呢?
- 候选者:WTF。。。这个倒不是很清楚,您能解释下吗?
- 面试官:OK,那我就简单解释下:
先写个简单的 demo,其中 data 中有 4 个属性a,b,c,d,在模板中被利用到的属性只有a,b。
本文共计1175个文字,预计阅读时间需要5分钟。
面试官:看过Vue的源码吗?候选人:看过。面试官:那你说说,当你在Vue的data中随意更改一个属性,视图都会被更新吗?候选人:不会。面试官:为什么选择Vue?候选人:因为如果该属性没有被用到,就不会触发模板更新。
- 面试官:看过 Vue 的源码没?
- 候选者:看过。
- 面试官:那你说下
Vue data中随意更改一个属性,视图都会被更新吗? - 候选者:不会。
- 面试官:why?
- 候选者:如果该属性没有被用到 template 中,就没有必要去更新视图,频繁这样性能不好。
- 面试官:那 Vue 中是如何去实现该方案的?
- 候选者:在实例初始化过程中,利用
Object.defineProperty对 data 中的属性进行数据监听,如果在template中被使用到的属性,就被 Dep 类收集起来,等到属性被更改时会调用notify更新视图。 - 面试官:那你怎么知道那些属性是在 template 被用到的呢?
- 候选者:WTF。。。这个倒不是很清楚,您能解释下吗?
- 面试官:OK,那我就简单解释下:
先写个简单的 demo,其中 data 中有 4 个属性a,b,c,d,在模板中被利用到的属性只有a,b。

