Vue源码分析-目录结构
目录结构![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/699f2ad45b0ae604bb49cf0172975953.png)
-
compiler 目录包含Vue.js所有编译相关的代码。它包括把所有模版解析成ast语法树,语法数优化等功能。
-
core目录 包含了Vue.js 的核心代码,包括内置组件,全局API封装,Vue实例化,观察者,虚拟DOM,工具函数等。
- observer 相应系统,包括数据观测核心代码
- vdom 包含虚拟DOM创建(creation)和打补丁(patching)的代码
- instance 包含Vue构建函数设计相关的代码
- global-api 包含给Vue构造函数挂在全局(静态方法)或属性的代码
- components 包含抽象出来的通用组件
-
platform Vue.js 是一个跨平台的MVVM框架,它可以泡在Web上,可以跑在weex 跑在,native客户端上,platform 是Vue.js 的入口,2 个目录代表2主要入口。
分别打包成运行在web 上和weex 上的Vue.js -
server Vue.js 2.0 支持了服务端渲染,所有服务端渲染相关的逻辑都在这个目录下,注意,这部部分代码是跑在服务端的Node.js, 不要和跑在浏览器端的Vue.js 混为一谈。
- web web 平台
- entry-runtime.js 运行时构建的入口,不包含模板(template)到render 函数的编译器,所不支持template 选项。我们使用vue 默认导出的就是一个运行时的版本。
- entry-runtime-with-compiler.js 独立构建版本的入口,它entry-runtime 的基础上添加了模板(template) 到render 函数的编译器
- entry-compiler.js vue-template-compiler 包的入口文件
- entry-server-renderer.js vue-server-renderer 包的入口文件
- entry-server-basic-renderer.js 输出 packages/vue-server-renderer/basic.js
- weex 混合应用
- web web 平台
-
sfc 通常我们开发 Vue.js 都会借助 webpack 构建,然后通过.vue 单文件来编写组件。
-
shared Vue.js 会定义歇一下工具方法,这里定义的工具方法都是会陪浏览器端的Vue.js 和 服务端的Vue.js 所共享的