Vue中修改data的任意属性,视图是否必然更新?

更新于
2026-09-25 06:21:21
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1174个文字,预计阅读时间需要5分钟。

Vue中修改data的任意属性,视图是否必然更新?

面试官:看过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。

阅读全文

本文共计1174个文字,预计阅读时间需要5分钟。

Vue中修改data的任意属性,视图是否必然更新?

面试官:看过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。

阅读全文