Vue源码解析7-生成render函数 发表于 2018-11-03 | 上篇文章说到了模板解析的第一步parse,现在来说第最后一步generate,用于生成render函数。这一步的代码基本都放在了src/compiler/codegen/index.js中,初看一下会觉得非常长,但并没有想象中复杂,只是需要处理的情况比较多。 在这篇文章里只会介绍最简单的处理,目的是 ... 阅读全文 »
Vue源码解析6-静态AST优化 发表于 2018-11-01 | 上篇文章说到了模板解析的第一步parse,现在来说第二步optimize,用于优化静态内容的渲染,主要是给静态节点打上一些标记。 Vue中对于生成的AST会做优化,静态内容是指和数据没有关系,不需要每次都刷新的内容,这一步主要就是找出 ast 中的静态内容,并加以标注。 这一步的代码比parse要少 ... 阅读全文 »
vscode使用经验 发表于 2018-10-31 | 看到很多同事都在用 vscode,但一些人没有体会到它的威力,只把它当做普通的编辑器来用,忽略了它最大的特性:插件。 事实上配合一些插件,可以让开发效率得到很大提升。 本文总结个人在使用vscode时用的最多的那些插件和快捷键,希望可以帮助到大家 😄。 快捷键mac 上的快捷键 每个人习惯的快捷键 ... 阅读全文 »
Vue源码解析5-模板解析parse 发表于 2018-10-27 | Vue 源码可以分为 3 大块:双向绑定、patch 算法和模板解析。其中又以模板解析最为复杂,它是用来将我们写的template模板编译成render函数,可以猜到如果我们直接写render,那么整个解析过程就可以跳过,而且分析其中的代码可以看出这个解析的过程其实是很独立的。 前面的文章也有提到, ... 阅读全文 »
Vue源码解析4-双向数据绑定 发表于 2018-10-20 | Vue 的响应式原理见官网的这张图 Vue 的更新是生成render函数,然后生成虚拟dom,映射到页面上。左侧的部分其实就是我们watcher的回调,右下角的data就是通过我们上面说的Observer来添加getter和setter。watcher通过dependency和data联系在一起,并 ... 阅读全文 »