vue中数据双向绑定的实现原理是什么

首先vue是一个mvvm模型框架

概念:双向绑定是vue的一个核心功能,所谓双向绑定就是当试图发生改变的时候传递给VM(ViewModel ),让数据得到更新,当数据发生改变的时候传给VM(ViewModel ),使得视图发生变化

vue怎么做到的呢?

observer(观察者),劫持监听所有属性,什么意思呢?

vue是通过这种模式进行数据劫持的,这种模式是发布者-订阅者模式

  1. 订阅者:就像我们生活中在淘宝京东买东西一样,我们是消费者就相当这种模式中的订阅者一样

  2. 发布者:你想买的书没货了,你和卖家说等你有货了你通知我,我再来买,那么卖家就是这种模式中的发布者,当然不只你一个人想买这本书,所以一个发布者可以给多个订阅者发布信息

  3. 知道了这种模式,它们是怎么通过数据劫持的,这里要引出Object.defineProperty()

Object.defineProperty(obj, "b", {
    set: function () {

    },
    get: function () {

    }
})

// 通过defineProperty中的set,get两个回调来进行数据劫持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈十一i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值