其他分享
首页 > 其他分享> > Vue10-10 vue中的数据代理解析

Vue10-10 vue中的数据代理解析

作者:互联网

Vue数据代理实现的重点:Object.defineProperty(obj,key,val)

Obj.defineProperty作用:

  1. 一般用来给一个对象中增加键值对儿数据

  2. 高级属性: get(){}和set(newValue){},getter用来在传入的obj被使用时调用;setter用来在传入的obj发生修改时调用。

  注意:getter和setter会对data中的一层层的数据对象进行监测

1.  当你创建Vue实例,在data中添加数据,并赋值给vm

    <script type="text/javascript">
        const vm = new Vue({
            el: '#root',
            data() {
                return {
                    student:{
                        name: "赵钱孙李",
                        address: '周家庄',
                    },
                }
            },
        })
    </script>

2.  此时,

  1. Vue会给data下所有数据使用getter和setter来监测,

  2. Vue会使用Object.defineProperty()将Vue中的data对象代理到vm对象中的_data对象中,并在_data中,给data中的每个数据增加getter和setter用来监测数据

  

 

标签:10,Vue,Vue10,vm,vue,defineProperty,getter,data,setter
来源: https://www.cnblogs.com/leafchen/p/16498325.html