vue理解
采用组件化模式,提高代码复用率、且让代码更好维护
虚拟DOM,开发人员不用直接操作DOM。
创建的vue实例先根据el,获得容器,“把容器拿过来”,然后进行一个重要的步骤—解析—扫描有没有自己设置的语法。
{{xxx}}中的xxx要写js表达式(不能写if,for这样的js代码)
表达式可以得到值,二js代码是控制代码的。
数据绑定
1、单向数据绑定 v-bind
数据由data流向页面。
2、双向数据绑定
v-model
双向绑定一般都应用在表单类元素中,可以获得用户的输入,修改相应的数据。
前者通过 Object.defineProperty API 给 data 创建 getter 和 setter,用于监听 data 的改变,data 一变就会触发 UI的改变
Object.defineProperty方法
通过get函数可以,将一个变量(相当于赋值给对象的某个属性,如person的age属性)描述不准确,按照自己的理解来的。
当这个变量发生变化时,对应的age属性值也会发生改变,通过get函数的返回值发生变化。
注:get:function(){ } 可以简写为 get(){ }
数据代理
什么是数据代理?通过一个对象操作另一个对象的属性。
vue中的数据代理
通过vm对象来代理data(或者说是_data)对象中属性的操作(读/写)如图: