vue双向数据绑定

181 阅读1分钟
  1. 通过 '数据劫持' Object. defineProperty() 来实现的

    Object. defineProperty()是es5提出来的一个无法shim(兼容)的,无法兼容ie8以下

  2. Object. defineProperty() 添加/修改属性

  3. vue 双向数据绑定是通过 数据劫持 结合 发布订阅模式的方式来实现的, 也就是说数据和视图同步,数据发生变化,视图跟着变化,视图变化,数据也随之发生改变;

    let obj = {} let temp = ''

    let ipt = document.querySelector('#txt') ipt.oninput = function() { obj.name = this.value }

    Object.defineProperty(obj, 'name', { // 赋值 get(newVal) { temp = newVal ipt.value = newVal }, // 获取 set() { return temp } })