Vue在初始化的时候,会有两个大步骤:

1、Compile

从root的节点开始编译,根据正则表达式,把特殊的v-*类的标签,全部转换成对应的内存中的object

2、Observe

全部的data,observer所有的属性。 针对每个属性,做一个pub/sub结构,这样每次属性变化,可以通知到他们。

比如 <input type="text" v-model="xxx" />

它的双向绑定有2个过程:

1、text内容变化, 通知data变更

  这个比较简单理解,在compile的过程中,针对text增加addeventlistener,有变化事件,更新data值

2、data属性值变化, 通知text更新内容

  Observer阶段,针对每个data的属性,都闭包一个 Sub对象;

  Compile阶段,把textnode和data,通过Watcher联系起来。 Watcher内部,一方面触发data,把自己放入sub中;另一方面,约定好update接口。

参考:http://www.cnblogs.com/kidney/p/6052935.html?utm_source=gold_browser_extension

最新文章

  1. Spark笔记:复杂RDD的API的理解(下)
  2. JavaScript单元测试框架JsUnit基本介绍和使用
  3. UVA 11992 Fast Matrix Operations (二维线段树)
  4. eWebeditor编辑器上传图片路径错误解决方法[疑难杂症]【转,作者:unvs】
  5. 如何用Apache TCPMon来截获SOAP消息
  6. boot/head.S
  7. Almeza MultiSet Pro(批量安装程序) V8.7.6中文特别版
  8. Android ListView(Selector 背景图片)
  9. IIS7 性能(内存、CPU、当前请求耗时)监测
  10. axis2 webservices 411错误解决办法
  11. Vue.js动画在项目使用的两个示例
  12. BZOJ_4002_[JLOI2015]有意义的字符串_矩阵乘法
  13. python continue的应用
  14. 搭建windows测试环境的步骤
  15. P1705 爱与愁过火(背包)
  16. sql语句中start with用法,用于表达一个复杂的目录树存储在一张表中
  17. golang结构体、接口、反射
  18. jupyter notebook中使用mpld3进行交互
  19. [转帖]台积电近10万片晶圆报废,但7nm工艺将成2019营收主力
  20. 增加显示记录数的label及隐藏refresh按钮

热门文章

  1. 使用 Docker 搭建 Java Web 运行环境(转)
  2. linux tail命令及其它日志查看命令的用法
  3. U-boot2010.06移植--阶段一
  4. 项目中常用的javascript/jquery操作
  5. ACM总结——2017区域赛网络赛总结
  6. BIOS备忘录之EC常用知识点
  7. SSM-网站后台管理系统制作(1)
  8. idea基于hibernate生成的Entitle对象,会忽略外键属性
  9. hdu 1895 Sum Zero hash
  10. SQL Developer连接Oracle出现“IO 错误:Undefined Error”