vue源码业余时间差不多看了一年,以前在网上找帖子,发现很多帖子很零散,都是一部分一部分说,断章的很多,所以自己下定决定一行行看,经过自己坚持与努力,现在基本看完了,差ddf那部分,因为考虑到自己要换工作了,所以暂缓下来先,diff那块后期我会补上去。这个vue源码逐行分析,我基本每一行都打上注释,加上整个框架的流程思维导图,基本上是小白也能看懂的vue源码了。

说的非常的详细,里面的源码注释,有些是参考网上帖子的,有些是自己多年开发vue经验而猜测的,有些是自己跑上下文程序知道的,本人水平可能有限,不一定是很正确,如果有不足的地方可以联系我QQ群 :302817612 修改,或者发邮件给我281113270@qq.com 谢谢。

1.vue源码解读流程 1.

nwe Vue

调用的是

Vue.prototype._init

从该函数开始 经过

$options

参数合并之后

initLifecycle

初始化生命周期标志 初始化事件,初始化渲染函数。初始化状态就是数据。把数据添加到观察者中实现双数据绑定。

2.双数据绑定原理是:

obersve()

方法判断value没有没有

__ob___

属性并且是不是

Obersve

实例化的, value是不是Vnode实例化的,如果不是则调用Obersve 去把数据添加到观察者中,为数据添加

__ob__

属性,

Obersve

则调用

defineReactive

方法,该方法是连接Dep和wacther方法的一个通道,利用

Object.definpropty()

中的get和set方法 监听数据。get方法中是new Dep调用depend()。为dep添加一个wacther类,watcher中有个方法是更新视图的是run调用update去更新vonde 然后更新视图。 然后set方法就是调用dep中的ontify 方法调用wacther中的run 更新视图 3.vue从字符串模板怎么到真实的dom呢?是通过

$mount

挂载模板,就是获取到html,然后通过

paseHTML

这个方法转义成ast模板,他大概算法是

while(html)

如果匹配到开始标签,结束标签,或者是属性,都会截取掉html,然后收集到一个对象中,知道循环结束 html被截取完。最后变成一个ast对象,ast对象好了之后,在转义成vonde 需要渲染的函数,比如

_c('div' s(''))

等这类的函数,编译成vonde 虚拟dom。然后到updata更新数据 调用

__patch__

把vonde 通过ddf算法变成正真正的dom元素。

具体看我源码和流程图,这里文字就不描述这么多了,流程图是下面这中的网盘,源码是vue.js,基本每一行都有注释,然后diff待更新中。

程序流程图太大了没法在线看,只能网盘下载到本地看了,给一个大概图

链接:https://http://pan.baidu.com/s/10IxV6mQ2TIwkRACKu2T0ng 提取码:1fnu

源码文件过大,知乎不能导入,大家可以点击cnblogs查看。

vue源码逐行注释分析+40多m的vue源码程序流程图思维导图 (diff部分待后续更新)

可加vx:qianduanmi,备注“知乎”,加入前端技术交流群

Vue 合同模板_vue源码逐行注释分析+40多m的vue源码程序流程图思维导图相关推荐

  1. iris流程图_GitHub - LeoIris/vue: vue源码逐行注释分析+40多m的vue源码程序流程图思维导图 (diff部分待后续更新)...

    vue源码业余时间差不多看了一年,以前在网上找帖子,发现很多帖子很零散,都是一部分一部分说,断章的很多,所以自己下定决定一行行看,经过自己坚持与努力,现在基本看完了 .这个vue源码逐行分析,我基本每 ...

  2. 《码农翻身:用故事给技术加点料》的思维导图

  3. 【思维导图】vue的思维导图(超全的)

    一.使用思维导图总结Vue.js官方文档(例子优化.难点及易错点注释)[上] 二.使用思维导图总结Vue.js官方文档(例子优化.难点及易错点注释)[下] 三.用一张思维导图总结了 Vue | Vue ...

  4. visio思维导图模板_如何下载思维导图模板?在线教你找精美漂亮的思维导图

    成为职场的一员后,我越来越意识到,学会.掌握绘制思维导图是很重要的一件事情.很多学习.工作上的任务.难题,以思维导图的方式汇总.整理出来以后,会变得简单许多.因此,在学习.工作之余,我常常自主学习脑图 ...

  5. 在线思维导图软件怎么使用模板?

    我们使用思维导图大部分是为了提高工作效率,当然也有学生使用思维导图是为了发散思维提高创造力和学习成绩.思维导图不仅可以在线制作.免费下载软件制作而且还可以使用模板制作.我们今天就来讲一下"在 ...

  6. vue的matcher_一张思维导图辅助你深入了解 Vue | Vue-Router | Vuex 源码架构

    1.前言 本文内容讲解的内容:一张思维导图辅助你深入了解 Vue | Vue-Router | Vuex 源码架构. 2. Vue 全家桶 先来张 Vue 全家桶 总图: 3. Vue 细分如下 源码 ...

  7. 0215前端日报:vue源码剖析思维导图

    给 「前端开发博客」 加星标,每天打卡学习 长按二维码即可识别"进入网页"查看哟~ 1.vue源码剖析思维导图(一) 趁这个"难得"的假期,学习了一下vue源码 ...

  8. spring aop原理_Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)...

    写在前面 由于Spring家族的东西很多,一次性写完也不太现实.所以这一次先更新Spring[最核心]的知识点:AOP和IOC 无论是入门还是面试,理解AOP和IOC都是非常重要的.在面试的时候,我没 ...

  9. Android---Service(生命周期、启动方式、服务通信、实战演练、思维导图、高级音乐播放器-源码)

    目   录 一.服务的创建 二.服务的生命周期 三.服务的启动方式 (1)startService 方式 启动 服务 实战演练---startService (2)bindService 方式 启动 ...

最新文章

  1. pip 升级_python的pip命令
  2. Infoview表单转换研究(infopath---aspx)
  3. 使用 Composer 安装 Laravel 框架
  4. Linux/Centos7系统管理之进程与计划任务管理
  5. 5.10 程序示例--模型选择-机器学习笔记-斯坦福吴恩达教授
  6. 利用My97DatePicker实现年份多选
  7. 一逛淘宝就停不下来?秘密在于首屏设计...
  8. Boost:计时系的测试
  9. QT的QFileOpenEvent类的使用
  10. 安装rpm包完成却报错(桌面软件类安装包),可以在usr/share/applications目录下找到图标打开
  11. 印象笔记再WIN10同步失败解决方法
  12. 使用免费阿里云服务器搭建远程桌面服务
  13. 使用mysql5.7.10
  14. APP版本号命名规范及原则,2018android面试题
  15. 当后台返回的图片在前端加载不出来时,前端做默认图片展示
  16. python 人脸打卡系统
  17. 如何将class文件反编译成java文件
  18. 用MATLAB求序列反折
  19. oracle11g64位怎么用sql,PLSQL Developer连接不上Oracle11g64位的解决办法
  20. Mysql查询不为null值和字段为null 阿星小栈

热门文章

  1. [Keras] 使用Keras调用多GPU时出现无法保存模型的解决方法
  2. Wireshark的工具下载
  3. 分享四个特别好用的app,真的太好用了
  4. NOIP2014 飞扬的小鸟 题解
  5. Python配置Bottle及简单使用
  6. FlinkCDC系列01: SQL-DDL方言翻译器:SQL-Translator测试手记
  7. Android Studio新版本无法执行java的main函数
  8. python:curses.textpad --- 用于 curses 程序的文本输入控件
  9. 使用logstash将Oracle数据导入到Elasticsearch
  10. 运维之道 | Kickstart+DHCP+FTP+TFTP+PXE 无人值守批量 Linux(Centos7)服务器安装