【Vue2.0学习】—理解数据代理(三十一)
什么是数据代理?
通过一个对象代理对另一个对象中属性的操作(读/写)
<script>
let obj = {
x: 100
}
let obj2 = {
y: 200
}
Object.defineProperty(obj2, 'x', {
get() {
return obj.x
},
set(value) {
obj.x = value
}
})
</script>
1、Vue中的数据代理
通过vm
对象来代理data
对象中属性的操作(读写)
2、Vue中数据代理的好处
更加方便的操作data
中的数据
3、基本原理
通过Object.defineProperty()
把data对象中所有属性添加到vm上, 为每一个添加到vm属性上的属性,都指定一个getter/setter,在getter/setter
内部去操作(读/写)data中对应的属性
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="../js/vue.js"></script>
</head>
<body>
<!--
1、Vue中的数据代理
通过vm对象来代理data对象中属性的操作(读写)
2、Vue中数据代理的好处
更加方便的操作data中的数据
3、基本原理
通过Object.defineProperty()把data对象中所有属性添加到vm上
为每一个添加到vm属性上的属性,都指定一个getter/setter
在getter/setter内部去操作(读/写)data中对应的属性
-->
<div id="root">
<h2>学校名称:{{name}}</h2>
<h2>学校地址:{{address}}</h2>
</div>
<script>
const vm = new Vue({
el: '#root',
data: {
name: '湖南大学',
address: '湖南'
}
})
</script>
</body>
</html>