vue 实现数据双向绑定主要是采用数据劫持结合发布者订阅模式的方式,通过Object.defineProperty()来劫持各个属性的setter,和getter,在数据变动时发布消息给订阅者,出发相应的监听回调,当把一个普通的JavaScript对象传给Vue实例来作为它的data选项时,vue将遍历它的属性,用Object.defineProperty()将它们转为setter/getter,用户看不到,但是在内部它们让Vue追踪依赖,在属性北方为和修改的时候通知变化
vue的数据双向绑定将MVVM作为数据绑定的入口,整合OBserver,compile,watcher三者,通过Observer来监听自己的model数据变化,通过compile来解析编译模板的指令,最终用watcher搭起的observerhe compile之间的同学桥梁,达到数据变化->视图更新,视图交互变化->数据model变更双向绑定效果
vue 怎么实现数据的双向绑定:Object.defineProperty()
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 面试官: 实现双向绑定Proxy比defineproperty优劣如何? 面试官系列(4): 实现双向绑定Prox...