Vue双向数据绑定

vue双向数据绑定原理

话述

vue.js是采用数据劫持结合发布者-订阅者模式的方式,通过object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染试图

实现步骤

observer主要是负责对Vue数据进行数据劫持,使用数据拥有getter和setter方法
指令解析器负责绑定数据和指令,绑定试图更新方法
watcher负责数据监听,当数据发生改变通知订阅者,调用试图更新函数更新试图

object.defineProperty()的理解

·作用

object.defineProperty()方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象。

·参数

object.defineProperty(obj,prop,descriptor)
obj要定义属性的对象。
prop要定义或修改的属性的名称。
descriptor要定义或修改的属性描述符。

代码展示

var obj = { b:“123” }
console.log(obj)
Objiect.defineProperty(obj,“a”,{
value:37, //值
writable:true, 是否可以被修改
enumerable:true, 是否可以被枚举也就是是否可以遍历
configurable:true 是否可以被删除
});
// 控制台输出
for ( let i in Object.keys(obj)) {
console.log(i)
}
obj.a = “36”
console.log(obj)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值