Vue监视数据的原理

Vue监视数据的原理:

1.Vue会监视data中所有层次的数据。
2.Vue如何检测对象中的数据?

​ 通过setter实现监视,且要在new Vue时就传入要检测的数据。

​ (1)给对象中的后面追加属性,Vue默认组做响应式处理

​ (2)如需要添加响应式属性,请使用如下API:

Vue.set(target,propertyName/数组index,value)
vm.$set(target,propertyName/数组index,value)

Tip:Vue.set给对象追加一个响应式的数据,不可以直接给data追加属性,只能给data内部的对象追加属性。数组方便记,可以将它看做类数组,本质是一个对象。像0、1为属性key,其值为value,因此该方法写index索引值,就相当于写属性名

3.Vue如何检测数组中的数据?

​ 通过包裹(重写)数组更新的方法来实现的,本质其实做了两件事:

​ (1)调用原生对应的方法对数组进行更新。

​ (2)重新解析模板,进而更新页面

4.在Vue中修改数组中的某个元素一定使用如下方法:
  • 使用这些API:push()、pop()、shift()、unshift()、splice()、sort()、reverse()

    Tip:例如 filter()concat()slice()。它们不会变更原始数组,而总是返回一个新数组。[来自Vue官网]

  • Vue.set()或者vm.$set()

Tip:Vue.set()和vm.$set()不能给vm或者vm的根对象数据(vm._data)添加属性!!!

5.数据劫持

给原来的data添加对应的getter、setter,使之变成响应式数据的操作称为数据劫持。数据劫持,即有人修改数据会被setter监听到,即为劫持。劫持到了之后会更改数据,并重新解析模板

例如:Vue中的data到vm._data的过程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值