Vue2.x源码学习笔记-源码目录结构整理

先从github上下载或者clone一个vue分支项目
查看下目录结果

先列出一些目录
Vue
|— build 打包相关的配置文件,其中最重要的是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相关
|— entries 入口文件,也就是build文件夹下config.js中配置的入口文件。看源码可以从这里看起
|— platforms 平台相关的内容
|— web web端独有文件
|— compiler 编译阶段需要处理的指令和模块
|— runtime 运行阶段需要处理的组件、指令和模块
|— server 服务端渲染相关
|— util 工具库
|— weex weex端独有文件
|— server 服务端渲染相关
|— sfc 暂时未知
|— shared 共享的工具方法
|— test 测试用例
其实我也比较懵逼,这么多目录和文件,好害怕啊。
要想看完它,绝逼是个持久战。
如果没有刘涛大神的博客,我想我是没有勇气看下去了。
因为考虑到,学习一个对于自己不会的框架,看官网的api和demo是最快的捷径,如果想要深入其源码,除了个人需要扎实的js基础和耐心,还必须对vue用的很熟练
且做过好些项目,对于我来说,用vue写过的项目才1个,官网api和文档才看了2遍左右,加上能力有限,想要看起源码,必然很吃力。
所以学习他人积累的经验也是提高自己能力的一条捷径。接下来的每晚,努力看点刘涛大神的博客,且记录下来。
Vue2.x源码学习笔记-源码目录结构整理的更多相关文章
- vue 源码学习(一) 目录结构和构建过程简介
Flow vue框架使用了Flow作为类型检查,来保证项目的可读性和维护性.vue.js的主目录下有Flow的配置.flowconfig文件,还有flow目录,指定了各种自定义类型. 在学习源码前可以 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring目录结构和基础JAR包介绍
可以通过网址 http://repo.spring.io/simple/libs-release-local/org/springframework/spring/ 下载名称为 springframe ...
- jquery源码学习笔记一:总体结构
练武不练功,到老一场空.计算机也一样. 计算机的功,就是原理.如果程序员只会使用各种函数,各种框架,而不知其原理,顶多熟练工人而已.知其然,更要知其所以然. jquery我们用得很爽,但它究竟咋实现的 ...
- linux云计算集群架构学习笔记:系统文件的目录结构
文件的基本管理和XFS文件系统备份恢复 1.1 Linux系统目录结构,相对/绝对路径. 1.2 创建/复制/删除文件,rm -rf / 意外事故 1.3 查看文件内容 1.4 xfs文件系统的备 ...
- Android学习笔记__2__Android工程目录结构
一.创建Android工程HelloWorld . src 文件夹里的是源文件 . Android2.2 是引用的类库,这些和 java 的都一样 . gen里面的类就是 ADT 自动生成的啦,一般只 ...
- Android学习笔记_40_系统结构 目录结构
1.系统结构: 一.应用程序层 Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序.电话拨号程序.图片浏览器.Web浏览器等应用程序.这些应用程序都是用Java语言编写 ...
- Linux学习笔记之Linux目录结构、磁盘命名、启动过程
1.Linux磁盘命名规则 名称的起名规则——/dev/xxyN: 1.Linux下装所有硬件设备的一个目录叫 /dev(devices) 2.Linux没有C盘.D盘.Linux最根上的一个目录叫 ...
- Laravel5.1 学习笔记1, 目录结构和命名空间(待修)
自从用 Laravel4做了个小网站,使用了数据库ORM Eloquent, 就放下了一段时间,想不到这个与Asp.net MVC 有着异曲同工之妙的框架已经出了下个版本,而且还有不小的改动,因此不得 ...
- jquery源码学习笔记三:jQuery工厂剖析
jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...
随机推荐
- 【实践练习一】Git以及Github的使用
以前经常在同学大神那听说过Github这神器,虽敬佩久已,奈何却无缘使用.好吧,我承认,主要还是不会用,一看网站全是英文的,想想还是不要为难自己了.然而现在还是要为难自己了,趁着早上刚学 ...
- MySQL安装的挫折之路
由于对MySQL卸载的不干净,mysql 的MySQL Connector Net/xxx无法卸载,后期重装无法成功.所以只能采用zip 安装https://www.cnblogs.com/Micha ...
- loadrunner 11 安装与使用
注:以下链接均为转载,详细内容请查看原文. 安装教程: https://blog.csdn.net/u010731693/article/details/78986840 使用教程: https:// ...
- Apex 的 Trigger 类简介
Apex Triggers Apex 触发器(Apex Triggers)是一种特殊的 Apex 类.它的主要作用是在一条记录被插入.修改.删除之前或之后自动执行一系列的操作.每一个 Trigger ...
- loadrunner 脚本开发-int型变量和字符串的相互转换
脚本开发-int型变量和字符串的相互转换 by:授客 QQ:1033553122 字符串转化为int型变量 Action2() { int j = 0; j = atoi("12345&qu ...
- 浅谈Redis之慢查询日志
首先我们需要知道redis的慢查询日志有什么用?日常在使用redis的时候为什么要用慢查询日志? 第一个问题: 慢查询日志是为了记录执行时间超过给定时长的redis命令请求 第二个问题: 让使用者更好 ...
- JS数组分组
//1.找出数组中相同的元素 getRepeatNum(arr) { let obj = {}; for (let i = 0, len = arr.length; i < len; i++) ...
- python格式化字符串format函数
1. format可以接受无限个的参数,位置可以不按顺序: In [1]: "{} {}".format("hello","world") ...
- WebStorm连接Github教程
上学期刚开学的时候看过一次git相关的内容,很久没用过,忘了,两个月前又看了一次还精心做了笔记,也没有具体使用,又忘了,所以,避免又双叒叕忘了,我决定正式把git用起来.刚开始是通过Git Bash来 ...
- Spring 12 种 常用注解!
1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controller ...