vue
白水煮青菜
这个作者很懒,什么都没留下…
展开
-
Vue2.x源码——优化器
在vue.js模板编译中,优化器的作用就是将解析器解析出来的AST进行进一步处理,找出AST中的静态节点并打上标记,这些静态节点没有使用任何变量,在首次渲染之后,它的状态都不会再发生变化了,每次重新渲染时都不需要为静态节点创建新的虚拟节点,在更新时也可以跳过静态节点的更新流程,不需要重复渲染,提升了性能。/** * Goal of the optimizer: walk the generat...原创 2020-03-08 13:20:34 · 244 阅读 · 0 评论 -
Vue2.x源码——解析器
解析器的作用就是将模板解析成AST。那么什么是AST呢?下面我们先来了解一下AST到底是什么东西:AST(Abstract Syntax Tree,抽象语法树),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。例子:<div> <p>{{value}}</p></div>将...原创 2020-03-06 14:35:54 · 289 阅读 · 0 评论 -
Vue2.x源码——compile函数
compile函数compile函数的主要作用是编译模板。function compile ( template: string, options?: CompilerOptions ): CompiledResult { //创建一个finalOptions const finalOptions = Object.create(base...原创 2020-02-11 16:52:18 · 523 阅读 · 0 评论 -
Vue2.x源码——vm.$mount函数
在不同的Vue.js构建版本中,vm.$mount的表现是不一样的。完整版和只包含运行时版本之间的差异在于是否有编译器。在完整版中,vm.$mount会先检查template或el选项提供的模板是否已经转换成了渲染函数,如果没有则将模板编译成渲染函数。而在只包含运行时的版本中,vm.$mount是没有编译模板的步骤的,它默认实例上已经有渲染函数了,如果没有它会自己设置一个。1、只包含运行时版...原创 2020-02-10 22:11:42 · 286 阅读 · 0 评论 -
Vue2.x源码——_init函数
执行了new Vue()之后,会通过_init方法触发一系列的初始化流程。而_init方法是通过initMixin方法挂载到Vue原型中的:export function initMixin (Vue: Class<Component>) { Vue.prototype._init = function (options?: Object) { //do something...原创 2020-02-04 21:13:40 · 1941 阅读 · 0 评论 -
Vue2.x源码——Vue构造函数
在Vue源码中,可以看到,Vue构造函数的实现是这样的:function Vue (options) { if (process.env.NODE_ENV !== 'production' && !(this instanceof Vue) ) { warn('Vue is a constructor and should be called with t...原创 2020-02-02 10:26:43 · 231 阅读 · 0 评论