源码目次构造
VUE 2.6.10
├── scripts # 打包相干的配置文件,个中最重要的是config.js。主如果依据差别的进口,打 包为差别的文件。
├── dist # 打包以后文件所在位置
├── examples # demo示例
├── flow # Vue运用了Flow来举行静态范例搜检,这里定义了声清楚明了一些静态范例
├── packages # vue还能够离别天生别的的npm包
├── src # 重要源码所在位置
├── compiler # 编译相干
├── codegen #依据ast天生render函数
├── directives #通用天生render函数之前须要处置惩罚的指令
├── parser #模板剖析
├── core # 中心代码
├── components #全局的组件,这里只要keep-alive
├── global-api #全局要领,也就是添加在Vue对象上的要领,比方Vue.use,Vue.extend,,Vue.mixin等
├── instance #实例相干内容,包括实例要领,生命周期,事宜等
├── observer #双向数据绑定相干文件
├── util #东西要领
├── vdom #假造dom相干
├── platforms # 差别平台的支撑
├── web #web端独占文件
├── compiler #编译阶段须要处置惩罚的指令和模块
├── runtime #运转阶段须要处置惩罚的组件、指令和模块
├── server #服务端衬着相干
├── util #东西库
├── weex #weex端独占文件
├── server # 服务端衬着
├── sfc # vue 文件剖析
├── shared # 同享东西代码
├── test # 测试用例
==重要源码所在位置Src==
compiler
compiler 目次包括 Vue.js 一切编译相干的代码。它包括把模板剖析成 ast 语法树,ast 语法树优化,代码天生等功用。
编译的事情能够在构建时做(借助 webpack、vue-loader 等辅佐插件);也能够在运转时做,运用包括构建功用的 Vue.js。明显,编译是一项耗机能的事情,所以更引荐前者——离线编译。
-
core
core 目次包括了 Vue.js 的中心代码,包括内置组件、全局 API 封装,Vue 实例化、观察者、假造 DOM、东西函数等等。这里的代码可谓是 Vue.js 的魂魄,也是我们以后须要重点剖析的处所。
-
platform
Vue.js 是一个跨平台的 MVVM 框架,它能够跑在 web 上,也能够合营 weex 跑在 native 客户端上。platform 是 Vue.js 的进口,2 个目次代表 2 个重要进口,离别打包成运转在 web 上和 weex 上的 Vue.js。我们会重点剖析 web 进口打包后的 Vue.js,关于 weex 进口打包的 Vue.js,感兴趣的同砚能够自行研讨。
-
server
Vue.js 2.0 支撑了服务端衬着,一切服务端衬着相干的逻辑都在这个目次下。注重:这部份代码是跑在服务端的 Node.js,不要和跑在浏览器端的 Vue.js 等量齐观。
服务端衬着重要的事情是把组件衬着为服务器端的 HTML 字符串,将它们直接发送到浏览器,末了将静态标记”夹杂”为客户端上完整交互的应用程序。
-
sfc
一般我们开辟 Vue.js 都邑借助 webpack 构建, 然后经由过程 .vue 单文件来编写组件。
这个目次下的代码逻辑会把 .vue 文件内容剖析成一个 JavaScript 的对象。
-
shared
Vue.js 会定义一些东西要领,这里定义的东西要领都是会被浏览器端的 Vue.js 和服务端的 Vue.js 所同享的。
援用: Vue.js 手艺揭秘.