vue 中的数据代理

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

好处:更加方便的操作 data 中数据,让编码更方便

<!--  有数据代理  -->
<h2>姓名:{{name}}</h2>
<h2>性别:{{sex}}</h2>

<!--  如果 Vue 没有数据代理  -->
<h2>姓名:{{_data.name}}</h2>
<h2>性别:{{_data.sex}}</h2>

原理

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


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

getter/setter 中操作 data 中对应的属性


实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue中的数据代理</title>
    <script type="text/javascript" src="js/vue.js"></script>
</head>
<body>

<div id="root">
    <h2>姓名:{{name}}</h2>
    <h2>性别:{{sex}}</h2>
</div>

<script type="text/javascript">
    new Vue({
        el: '#root',
        data() {
            return {
                name: '张三',
                sex: '男'
            }
        }
    })
</script>

</body>
</html>


posted @ 2022-04-03 13:06  春暖花开鸟  阅读(57)  评论(0编辑  收藏  举报