首页 > 其他 > 详细

vue__数据代理

时间:2020-07-18 16:25:44      阅读:39      评论:0      收藏:0      [点我收藏+]
  1. 数据代理: 通过一个对象代理对另一个对象中属性的操作(读/写)
  2. vue数据代理: 通过vm对象来代理data对象中所有属性的操作
  3. 好处:更方便的操作data中的数据
  4. 基本实现流程:
    a: 通过Object.defineProperty()给 vm 添加 与 data 对象的属性对应的属性描述符
    b: 所有添加的属性都包含 getter/setter
    c: getter/setter 内部去操作 data中对应的属性数据
  5. 代码
  6. _proxy:function(key){
      // 保存vm
      var me = this;
      // 给 vm添加指定属性名的属性(使用的属性描述符)
      Object.defineProperty(me,key,{
        configurable:false,// 不能重新定义
        enumerable:true, // 可以枚举遍历
        // 当通过vm.xxx读取属性值时调用, 从data中获取对应的属性值返回  代理读操作
        git:function proxyGetter(){
          return me._data[key];
        },
        // 当通过vm.xxx = value时 , value被保存到data中对应的属性上  代理写操作
        set:function proxySetter(newVal){
          me.data[key] = newVal;
        }
    }
    }

vue__数据代理

原文:https://www.cnblogs.com/cl1998/p/13334898.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!