关于Vue2的双向数据绑定以及 响应式原理 的理解

  1. 双向数据绑定 :
      vue的数据双向绑定,将mvvm 作为数据绑定的入口,整合 Observer, Complie 和watcher 三者,通过Observer 来监听自己的model 的 数据变化, 
      通过Compile 来解析编译模板指令(vue 中是用来解析{{}})最终利用 watcher 搭起 Observer 和Compile 之间的通信桥梁,
      达到数据变化-》 视图更新-》;视图变化(input)->数据model 变更双向绑定 
        <input id='app' />
        <span id='spanVal'> </span>
        var obj = {}
        var initVal = 'aaa';
        Object.defineProperty(obj,initVal,{
            get(){
              console.log('获取obj的最新值')
              return initVal
            },
            set(val){
                  initVal = val;
                  console.log('设置最新的值')
                  document.getElementById('initVal').text(initVal)
            }
        })
        document.addEventListener('keyup',function(e){
            obj.initVal = e.target.value; // 监听获取文本框输入的值
        }) 
    2. 响应式原理 : 
        vue 在初始化数据时,会对数据进行递归遍历,把每个属性都转换成get 和set 通过 Object.defineProperty () 方法实现数据劫持  
        他可以接收三个参数 第一个参数 要操作的对象,第二个参数 要定义或修改的对象属性名 第三个 描述对象,
        当数据变化时,会触发setter,setter会通知所有订阅者,订阅者就会更新页面视图,从而实现了数据双向绑定

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值