1.data: 数据可以在当前模块中直接使用(不需要加this); data中的数据命名不要使用$,下划线(_)开头 因为vue解析data以后,会把当前数据挂载到实例对象上
<div id="app"> <h1>{{name}}</h1> </div> let app = new Vue({ el:'#app', data:{ name:"小赵", sex:"女", age:"18" } });2.数据劫持: 数据驱动视图:2.1监听指定的数据, 2.2将指定的数据发生改变,被获取时触发指定的方法(get/set) 2.3将新数据,渲染到页面上 特别优待的数组(vue对数组的方法进行了重新封装,解决了改问题)
<div id="app"> <h1>x:{{obj.x}}</h1> <h1>y:{{obj.y}}</h1> <h2>{{arr}}</h2> </div> let $data = {x:1}; Object.defineProperty(obj,'x',{ set(newVal){ $data.x = newVal; render(); }, get(){ return $data.x; } }); //问题: 无法对新增的属性进行监听 Object.defineProperty(obj,'y',{ set(newVal){ $data.y = newVal; render(); }, get(){ return $data.y; } }); //特别优待的数组(vue对数组的方法进行了重新封装,解决了该问题) let app = new Vue({ el:"#app", data: { obj:{ x:1 }, arr:[1,2,3] }, });