ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue实现数据双向绑定的原理:Object.defineProperty()

2022-02-23 12:03:58  阅读:141  来源: 互联网

标签:vue Object 绑定 双向 defineProperty 数据


vue实现数据双向绑定的原理:Object.defineProperty()

vue 实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty() 来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。当把一个普通JavaScript对象传回给vue实例来作为它的data选项时,Vue将遍历它的属性,用Object.defineProperty() 将它们转为getter/setter。用户看不到 getter/setter,但是在内部它们让Vue追踪依赖,在属性被访问和修改是通知变化。

vue的数据双向绑定将MVVM作为数据绑定的入口,整合observer,Compile和Watcher三者,通过Observer来监听自己的model的数据变化,通过Compile来解析编译模板指令(vue 中是用来解析 {{}}),最终利用watcher搭起observer和Compile之间的通信桥梁,达到数据变化——>视图更新;视图交互变化(input)——>数据model更新双向绑定效果。

标签:vue,Object,绑定,双向,defineProperty,数据
来源: https://blog.csdn.net/qq_46177396/article/details/123086512

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有