双向数据绑定原理

本文探讨了双向数据绑定的实现,通过数据劫持、setter、getter和`Object.defineProperty()`来实现。首先,介绍了数据监听器observer如何监听数据变化,并通知订阅者。接着,解释了指令解析器compile的作用,它解析元素节点和指令,绑定更新函数。然后,阐述了watcher作为桥梁的角色,订阅属性变化并更新视图。最后,提到了setter和getter在对象属性中的作用,以及`Object.defineProperty()`用于定义或修改对象属性的方法。
摘要由CSDN通过智能技术生成

1.双向数据绑定是通过数据劫持结合发布订阅者的模式和object.defineproprety()来劫持各个属性的setter、getter,如果数据有变动,就发布消息给订阅者触发监听。

2.双向数据绑定的步骤:
**第一步:**实现一个数据监听器observer,能够对数据对象的所有属性就行监听。如果有变动就拿到最新值并通知订阅者。
**第二步:**实现一个指令解析器compile,对每个元素节点和指令进行扫描和解析,根据指令模板替换数据以及绑定相应的更新函数。
**第三步:**实现一个watcher,作为链接observer和compile之间的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图。
**第四步:**实现一个MVVM作为数据绑定的入口,作为Observer、compile、watcher之间的桥梁,通过observer来监听自己的modle数据变化,通过compile来解析扫描模板指令,最终利用watcher搭起observer和compile之间的桥梁,实现双向数据绑定的效果。

2.什么是setter、getter

对象有两个属性:1.数据属性,就是我们经常用的属性。2.访问器属性,

1.get和set就是关键字,他们后面各自对应一个函数,这个函数就是存储型属性。

2.get对应的方法就是getter,负责获取值,他不带任何参数,set对应的方法为setter,负责设置值,在他的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值