双向绑定及脏检查
先行流向框架如 angular\vue都有这么一个这么一个功能,即双向数据绑定,那么如何实现双向数据绑定呢?
首先,我们要获取双向数据绑定,那么肯定的一点是我们要对页面元素进行遍历。获取所有的页面元素
document.getElementsByTagName('*');
脏检查:
将原来的数据存一份,然后循环检查每一个数据是否发生变化,如果发生变化,则更新UI变化。循环性能不高。
defineProperty||_definGeter_监听,兼容性不高
获取之后呢,对页面上的元素进行判定,看是否具有某一特定的属性,如果有,则添加方法;具体代码如下