深入浅出vue原理(一、Object.defineProperty)

877 阅读1分钟

vue原理系列

vue原理一

vue原理二

vue原理三

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)
}