数据代理-Object.defineProperty -Vue中的数据代理

一、了解Object.defineProperty

   值得一说的是,get函数和set函数不能与value、writable共同使用否则就会出现

property descriptors must not specify a value or be writable when a getter or setter has been specified

当指定了getter或setter时,属性描述符不能指定值或可写



    
        
         初识vue
        
         
    
    
        

二、数据代理

   1.定义

   数据代理:通过一个对象代理另一个对象中属性的操作(读或写)

   下面这个小案例就是通过obj2来操作obj



    
        
         初识vue
        
         
    
    
        

数据代理-Object.defineProperty -Vue中的数据代理_第1张图片

 

2.Vue中的数据代理

   Vue中数据代理:

         通过vm对象来代理data对象中属性的操作(读或写)

   Vue中数据代理的好处:

         更加方便的操作data中的数据

   基本原理:

          通过Object.defineProperty()把data对象中所有属性添加到vm上

          为每个添加到vm上的属性都指定一个getter和setter

           在getter/setter内部去操作(读或写)data中对应的属性

数据代理-Object.defineProperty -Vue中的数据代理_第2张图片

 

数据代理-Object.defineProperty -Vue中的数据代理_第3张图片

 

 假设我们没有数据代理,我们在使用插值语句的时候使用了_data.xxxx这样就增加了代码量,也非常的不方便,故我们使用了上面的数据代理



    
        
         初识vue
        
         
    
    
        

{{_data.name}}

{{_data.address}}

你可能感兴趣的:(Vue,vue.js,javascript,前端)