什么是双向绑定?原理是什么?
-
双向数据绑定个人理解就是存在data→view,view→data两条数据流的模式。其实可以简单的理解为change和bind的结合。目前双向数据绑定都是基于Object.defineProperty()重新定义get和set方法实现的。修改触发set方法赋值,获取触发get方法取值,并通过数据劫持发布信息.
-
通过
Observer
把数据劫持(Object.defineProperty()
) 、加入到订阅器(Dep
) 订阅器收集订阅者(Watcher
)、视图通过编译(Compile
)、解析指令(Directive
)等一些列操作收集给订阅者 、最后通过触发数据变化update
通知所有订阅者完成数据驱动