api:
object.defineProperty(person,'age',{
value:18,
enumerable:true //控制属性是否可以枚举,默认值是false
writable:true //控制属性是否可以被修改,默认值是false
configurable:true //控制属性是否可以被删除,默认值是false
//挡有人读取person的age属性时,get函数就会被调用,且返回值就是age值;
get:function(){
return number
},
//当有人修改了person的age属性时,set函数(setter)就会被调用,且会收到具体修改的值
set(value){
number=value
}
}
vue中的数据代理:
通过vm对象来代理data对象中对象中属性的操作(读/写)
vue中数据代理的好处:
更加方便的操作data中的数据
基本原理:
通过object.defineProperty()把data对象中所有的属性添加到vm上。
为每一个添加vm上的属性,指定一个getter/settter。
在getter/setter内部去操作(读/写)data中对应的属性。
事件的基本使用:
使用v-on:xxx 或 @xxx 绑定事件,其中xxx是事件名;
事件的回调需要配置在methods对象中,最终会在vm上;
methods中配置的函数,不要用箭头函数,否则this就不是vm;
methods中配置的函数,都是被vue所管理的函数 .this的指向是vm 或组件实例对象;
@click="demo" 和 @click="demo($event)"效果一样,但后者可以传参
vue中的事件修饰符:
prevent:阻止默认事件(常用);
stop:阻止事件冒泡(常用);
once:事件值触发一次(常用);
capture:使用事件的捕获模式;
self:只有event.target是当前操作的元素 是才触发事件;
passive:事件的默认行为立即执行,无需等待事件回调执行完毕