首先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两个回调来进行数据劫持

Logo

前往低代码交流专区

更多推荐