源码目录设计:
compiler:包含Vue.js所有编译相关的代码。包括把模板解析成ast语法树,ast语法树优化,代码生成。。。
core:核心代码。包括内置组件、全局API封装、Vue实例化、观察者、虚拟DOM、工具函数。。
platform:Vue.js的入口。两个目录代表两个主要路口,分别打包成运行在web和weex上的Vue.js.
server:服务端渲染。代码是跑在服务端渲染的Node.js。把组件渲染为服务端的HTML字符串,直接发送到浏览器。
sfc:把.vue文件内容解析成一个js的对象。
shared:被浏览器端和服务端的Vue.js所共享的工具方法。
构建脚本
package.json:项目的描述文件。配置的script字段作为NPM的执行脚本。
构建过程
在scripts/build.js中。
对于单个配置,它是遵循 Rollup 的构建规则的。其中 entry 属性表⽰构建的⼊⼝ JS ⽂件地 址, dest 属性表⽰构建后的 JS ⽂件地址。 format 属性表⽰构建的格式, cjs 表⽰构建出来的 ⽂件遵循 CommonJS 规范, es 表⽰构建出来的⽂件遵循 ES Module 规范。 umd 表⽰构建出来的⽂ 件遵循 UMD 规范。
推荐使Runtime-Only 的 Vue.js。因为渲染都是通过 render 函数,如果写 template 属性,则需要编译成 render 函数,损耗性能。
Vue 实例挂载的实现
是通过 $mount 实例⽅法去挂载 vm 的.