# 结构文件
# 整体结构
src
├── compiler # 编译相关
├── core # 核心代码
├── platforms # 不同平台的支持
├── server # 服务端渲染
├── sfc # .vue 文件解析
├── shared # 共享代码
# compiler
compiler 目录包含 Vue.js 所有编译相关的代码。它包括把模板解析成 ast 语法树,ast 语法树优化,代码生成等功能。
# 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即我们前端开发使用的版本,weex为和阿里合作开发的一个跨平台版本,因为运行环境的改变主要是对编译和runtime的更改。
# server
Vue.js 2.0 支持了服务端渲染,所有服务端渲染相关的逻辑都在这个目录下。即跑在node上的vue,由服务器直接生成到浏览器渲染,但是部分标记节点保持动态渲染的特性,可以直接使用vue生态的nuxt.js直接使用。
# shared
Vue.js 会定义一些工具方法,这里定义的工具方法都是会被浏览器端的 Vue.js 和服务端的 Vue.js 所共享的。
# 核心结构
core
├── components # 组件相关
├── global-api # 全局api
├── instance # vue实例核心
├── observer # 数据监听、依赖管理(双向绑定相关)
├── util # 开发工具函数
├── vdom # vdom
← 开始