Vue基础总结系列文章第三篇---响应式数据更新

Vue是MVVM框架,数据的更新会触发模板的更新。核心是通过Object.defineProperty来实现的。但是具体的要点还有这些:

1.数据来源:来自父组件的props,自身的状态data,还有公共状态vuex等。这些的改变都可能触发视图的更新。

2.数据只有在初始化的时候,模板有用到的,才会被放入watcher里面,后期 修改才会触发视图更新,否则不会。

3.data只有放在return里面才能触发数据更新:

此处的c虽然在模板中有用到,但是没有放在return里面,所以修改后并不会触发数据更新

4.数据如果是对象的话,初始化对象没有某个属性,后面增加了某个属性,这样不会触发模板更新。如果要触发,可以用set方法,或者预期知道某个属性,但是可以设置为undefined.

此处有个例外:如果数据是数组,对数组进行push操作,依然可以触发视图更新。

参考代码:

https://github.com/ssxsite/vue2-webpack_update/blob/master/practice/component/PropsAndData.vue

源码参考文章:

https://funteas.com/topic/5a809f5847dc830a0e4690c2

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值