vue原理系列
MVVM是什么?特点是什么?
是双向数据绑定,数据影响视图,视图影响数据
怎么实现一个MVVM?
对比ng,(脏值检测) vue是数据劫持+发布订阅 不兼容低版本浏览器 Object.defineProperty(对象定义属性)
let obj = {}
Object.defineProperty(obj,'objKey',{
value:'objVal'
})
delete删除删不掉是因为configurable默认是false,要配置true 也不能改因为writable默认是false,要改成true才能改
for(let key in obj){
console.log(key)
}
不能遍历是因为enumerable是false,不可枚举,要改成true 有get、set会报错,要用get、set代替writable和value属性 获取objKey是会调用get方法
get(){
return 'val'
}
赋值school是会调用set方法 set方法有个value参数
set(val){
console.log(val)
}