Skip to the content.

Vue源码

一个View框架究竟从整体上要做什么?

抓住主线:从Vue构造函数的设计、原型的设计、选项的设计入手,紧接着从模版渲染、指令设计、数据绑定的实现入手,紧接着从virtual dom更新视图入手

目录结构设计

穿插: entry的那些path解析完全是由node API: path.resolve()加上简单自定义函数得到。

穿插: module specifier为具名模块string IDs,原理上这个是由module loader API配置的,这个地方是间接通过flow配置文件.flowconfig[options]module.name_mapper(regex -> string)来修改配置的

在构造函数Vue上定义compile方法: // TODO

这里面有个用法值得探讨, 预先把原型$mount属性定义为变量mount,然后再定义原型上$mount属性,也在定义函数中尾调用mount。

const mount = Vue.prototype.$mount

Vue.prototype.$mount = function (el, hydrating) {
  return mount.call(this, el, hydrating)
}

$mount属性的实现 缓后