vue的版本是:^2.6.10

结构如下:

|----- vue
| |--- dist # 打包之后的目录vue文件
| | |--- vue.common.dev.js
| | |--- vue.common.js
| | |--- vue.common.prod.js
| | |--- vue.esm.browser.js
| | |--- vue.esm.browser.min.js
| | |--- vue.esm.js
| | |--- vue.js
| | |--- vue.min.js
| | |--- vue.runtime.common.dev.js
| | |--- vue.runtime.common.js
| | |--- vue.rintime.common.prod.js
| | |--- vue.runtime.esm.js
| | |--- vue.runtime.js
| | |--- vue.runtime.min.js
| |--- src
| | |--- compiler # 模板解析相关的文件
| | | |--- codegen # 根据Ast 生成 render 函数
| | | | |--- events.js
| | | | |--- index.js
| | | |--- directives # 生成 render 函数之前需要处理的指令
| | | | |--- bind.js
| | | | |--- index.js
| | | | |--- model.js
| | | | |--- on.js
| | | |--- parser # 模板解析
| | | | |--- entity-decoder.js
| | | | |--- filter-parser.js
| | | | |--- html-parser.js
| | | | |--- index.js
| | | | |--- text-parser.js
| | | |--- codeframe.js
| | | |--- create-compiler.js
| | | |--- error-detector.js
| | | |--- helpers.js
| | | |--- index.js
| | | |--- optimizer.js
| | | |--- to-function.js
| | |---- core
| | | |--- components # 全局组件 目前只有 keep-alive
| | | | |--- index.js
| | | | |--- keep-alive.js
| | | |--- global-api # 全局方法 添加到vue上的方法
| | | | |--- assets.js
| | | | |--- extends.js
| | | | |--- index.js
| | | | |--- mixin.js
| | | | |--- use.js
| | | |--- instance # 实列相关的内容 包括实列方法。生命周期,事件等。
| | | | |--- render-helpers
| | | | | |--- bind-dynamic-keys.js
| | | | | |--- bind-object-listeners.js
| | | | | |--- bind-object-props.js
| | | | | |--- check-keycodes.js
| | | | | |--- index.js
| | | | | |--- render-list.js
| | | | | |--- render-slot.js
| | | | | |--- render-static.js
| | | | | |--- resolve-filter.js
| | | | | |--- resolve-scoped-slots.js
| | | | | |--- resolve-slots.js
| | | | |--- events.js
| | | | |--- index.js
| | | | |--- init.js
| | | | |--- inject.js
| | | | |--- lifecycle.js
| | | | |--- proxy.js
| | | | |--- render.js
| | | | |--- state.js
| | | |--- observer # 数据双向绑定文件
| | | | |--- array.js
| | | | |--- dep.js
| | | | |--- index.js
| | | | |--- scheduler.js
| | | | |--- traverse.js
| | | | |--- watcher.js
| | | |--- util # 工具方法
| | | | |--- debug.js
| | | | |--- env.js
| | | | |--- error.js
| | | | |--- index.js
| | | | |--- lang.js
| | | | |--- next-tick.js
| | | | |--- options.js
| | | | |--- perf.js
| | | | |--- props.js
| | | |--- vdom # 虚拟dom相关的
| | | | |--- helpers
| | | | | |--- extract-props.js
| | | | | |--- get-first-component-child.js
| | | | | |--- index.js
| | | | | |--- is-async-placeholder.js
| | | | | |--- merge-hook.js
| | | | | |--- normalize-children.js
| | | | | |--- normalize-scoped-slots.js
| | | | | |--- resolve-async-component.js
| | | | | |--- update-listeners.js
| | | | |--- modules
| | | | | |--- directives.js
| | | | | |--- index.js
| | | | | |--- ref.js
| | | | |--- create-component.js
| | | | |--- create-element.js
| | | | |--- create-functional-component.js
| | | | |--- patch.js
| | | | |--- vnode.js
| | | |--- config.js # 入口配置文件
| | | |--- index.js
| | |--- platforms # 平台相关的
| | | |--- web # web平台
| | | | |--- compiler # 编译期间需要处理的指令和模块
| | | | | |--- directives # 指令
| | | | | | |--- html.js
| | | | | | |--- index.js
| | | | | | |--- model.js
| | | | | | |--- text.js
| | | | | |--- modules # 模块
| | | | | | |--- class.js
| | | | | | |--- index.js
| | | | | | |--- model.js
| | | | | | |--- style.js
| | | | | |--- index.js
| | | | | |--- options.js
| | | | | |--- util.js
| | | | |--- runtime # 运行阶段处理的组件、指令和模块
| | | | | |--- components # 相关的组件
| | | | | | |--- index.js
| | | | | | |--- transition-group.js
| | | | | | |--- transition.js
| | | | | |--- directives # 相关的指令
| | | | | | |--- index.js
| | | | | | |--- model.js
| | | | | | |--- show.js
| | | | | |--- modules # 相关的模块
| | | | | | |--- attrs.js
| | | | | | |--- class.js
| | | | | | |--- dom-props.js
| | | | | | |--- events.js
| | | | | | |--- index.js
| | | | | | |--- style.js
| | | | | | |--- transition.js
| | | | | |--- class-util.js
| | | | | |--- index.js
| | | | | |--- node-ops.js
| | | | | |--- patch.js
| | | | | |--- transition-util.js
| | | | |--- server # 服务端渲染的指令和模块
| | | | | |--- directives # 指令
| | | | | | |--- index.js
| | | | | | |--- model.js
| | | | | | |--- show.js
| | | | | |--- modules # 模块
| | | | | | |--- attrs.js
| | | | | | |--- class.js
| | | | | | |--- dom-props.js
| | | | | | |--- index.js
| | | | | | |--- style.js
| | | | | |--- compiler.js
| | | | | |--- util.js
| | | | |--- util
| | | | | |--- attrs.js
| | | | | |--- class.js
| | | | | |--- compat.js
| | | | | |--- element.js
| | | | | |--- index.js
| | | | | |--- style.js
| | | | |--- entry-compiler.js
| | | | |--- entry-runtime-with-compiler.js
| | | | |--- entry-runtime.js
| | | | |--- entry-server-basic-renderer.js
| | | | |--- entry-server-renderer.js
| | | |--- weex # weex平台
| | |--- server
| | | |--- bundle-renderer
| | | | |--- create-bundle-renderer.js
| | | | |--- create-bundle-runner.js
| | | | |--- source-map-support.js
| | | |--- optimizing-compiler
| | | | |--- codegen.js
| | | | |--- index.js
| | | | |--- modules.js
| | | | |--- optimizer.js
| | | | |--- runtime-helpers.js
| | | |--- template-renderer
| | | | |--- create-async-file-mapper.js
| | | | |--- index.js
| | | | |--- parse-template.js
| | | | |--- template-stream.js
| | | |--- webpack-plugin
| | | | |--- client.js
| | | | |--- server.js
| | | | |--- util.js
| | | |--- create-basic-renderer.js
| | | |--- create-renderer.js
| | | |--- render-context.js
| | | |--- render-stream.js
| | | |--- render.js
| | | |--- util.js
| | | |--- write.js
| | |--- sfc
| | | |--- parser.js
| | |--- shared
| | | |--- constants.js
| | | |--- util.js
| |
| |--- types
| | |--- index.d.ts
| | |--- options.d.ts
| | |--- plugin.d.ts
| | |--- vnode.d.ts
| | |--- vue.d.ts
| |--- package.json
| |--- README.md

如上是 vue2.6.10版本所有的js目录结构

1. src/compiler: 该目录包含Vue.js所有编译相关的代码,包括把模板解析成AST语法树、及 AST语法树优化、代码生成等功能。

src/compiler/codegen: 把AST转换成Render函数。
   src/compiler/parser: 解析模板成AST。
   src/compiler/directives: 生成 Render 函数之前需要处理的指令。

2. src/core: 该目录包含了Vue.js的核心代码,包括内置组件、全局API封装、Vue实列化、观察者、虚拟DOM、工具函数等。

src/core/components: 组件相关的属性,目前这里只有keep-alive组件
   src/core/global-api: Vue的全局api, 比如 Vue.extend、Vue.mixin.
   src/core/instance: 实例化相关的。比如 生命周期、事件等。
   src/core/observer: Vue响应式数据相关的目录。
   src/core/util: Vue相关的工具方法目录。
   src/core/vdom: 虚拟dom相关的内容。

3. src/platforms: platforms 是Vue.js的入口文件,有2个入口文件 web 和 weex,分别打包运行在 web或 weex 平台上的。

src/platforms/web 平台上的(src/platforms/weex 也是一样的意思)。
   src/platforms/web/compiler: web端编译器相关的代码,用来编译模板成Render函数。
   src/platforms/web/runtime: web端运行时相关的代码,用来创建Vue实列等操作。
   src/platforms/web/util: 相关工具类。
   src/platforms/web/server: 服务器端渲染相关的。

4. src/server: Vue2.0+ 为了支持服务器端渲染,所有服务器端渲染相关的逻辑都放在这个目录下。

5. src/sfc:   该目录下的代码逻辑会把 .vue 文件内容解析成一个 javascript 的对象。

src/sfc/parser.js: 转换单文件组件(*.vue) 解析成一个javascript对象。

6. src/shared: 该目录下会定义一些工具方法。这些工具方法会被浏览器端 Vue.js 和 服务器端 Vue.js所共享的。

vue系列文章 --- 源码目录结构整理(三)的更多相关文章

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

    先从github上下载或者clone一个vue分支项目 https://github.com/vuejs/vue 查看下目录结果 先列出一些目录 Vue |— build 打包相关的配置文件,其中最重 ...

  2. chromium浏览器开发系列第三篇:chromium源码目录结构

    上两篇介绍了下载源码和编译源码,这次主要介绍chromium的源码目录结构,我也是通过源码和官网结合来跟大家说,如果有说的不准确的,欢迎交流. 另外,官网的不一定准确,他们其实也很懒,所以最主要还是靠 ...

  3. Linux基础系列—Linux内核源码目录结构

    /** ****************************************************************************** * @author    暴走的小 ...

  4. 【安卓本卓】Android系统源码篇之(一)源码获取、源码目录结构及源码阅读工具简介

    前言        古人常说,“熟读唐诗三百首,不会作诗也会吟”,说明了大量阅读诗歌名篇对学习作诗有非常大的帮助.做开发也一样,Android源码是全世界最优秀的Android工程师编写的代码,也是A ...

  5. Locust源码目录结构及模块作用

    Locust源码目录结构及模块作用如下: 参考文章:https://blog.csdn.net/biheyu828/article/details/84031942

  6. InfluxDB源码目录结构解析

    操作系统 : CentOS7.3.1611_x64 go语言版本:1.8.3 linux/amd64 InfluxDB版本:1.1.0 influxdata主目录结构 [root@localhost ...

  7. (转)android系统架构及源码目录结构

    转自:http://blog.csdn.net/finewind/article/details/46324507 1. Android系统架构: android系统架构采用了分层架构的思想,如下图所 ...

  8. (3.1)mysql基础深入——mysql二进制与源码目录结构介绍

    (3.1)mysql基础深入——mysql二进制与源码目录结构介绍 关键字:二进制目录结构,源码目录结构(编译安装目录结构) 1.二进制安装程序目录结构 [1] BIN -- mysql的可执行文件( ...

  9. Source Code Structure - Python 源码目录结构

    Source Code Structure - Python 源码目录结构 Include 目录包含了 Python 提供的所有头文件, 如果用户需要用 C 或 C++ 编写自定义模块扩展 Pytho ...

随机推荐

  1. Android静态注册广播无法接收的问题(8.0+版本)

    如果你静态注册的广播无法接收到消息,请先检查下:你的安卓版本是不是8.0+ * 前言** Google官方声明:Beginning with Android 8.0 (API level 26), t ...

  2. spring web 脚手架 (持续更新中...)

    spring web 脚手架 项目地址: https://github.com/MengW9/scafflod.git 还有觉得哪些可以加上去的配置,欢迎各位拍砖,我会持续更新,大家共同进步 一个通用 ...

  3. mysql创建表时字段类型选择与优化

    一.选择原则 1.应该尽量使用可以正确存储数据的最小字段类型 2.选用简单的数据类型,例如:一个是尽量用mysql内置的字段类型来存储日期和时间:另一个存储IP地址尽量用整型:能用整型的尽量不用字符串 ...

  4. filebeat的@timestamp字段时区问题

    最近使用filebeat进行日志采集,并通过logstash对日志进行格式化处理. filebeat采集数据后,会给日志增加字段@timestamp,@timestamp是UTC时间,查看日志很不方便 ...

  5. 『嗨威说』算法设计与分析 - STL中Sort函数的实现原理初探

    本文索引目录: 一.对Sort算法实现的个人阅读体会 二.Sort算法使用的三个排序算法的优点介绍 2.1 插入排序的优缺点 2.2 堆排序的优缺点 2.3 快速排序的优缺点 2.4 新的结合排序—— ...

  6. 构建之法——homework1:问题思考

    1.我看了第一章概论,1.2.4 软件工程的目标——创造“足够好”的软件,其中提到了什么是好的软件?  软件工程的一个要素就是把软件的Bug都消灭掉的过程. 提问:我们知道Bug是不可能完全消灭掉的, ...

  7. 猿说python

    一.简介         知识改变命运,程序改变世界.互联网时代潜移默化的改变着我们的生活,伴随技术的进步,我想下一个时代应该属于人工智能和机器学习,属于python.           pytho ...

  8. redis列表底层实现之一——链表

    注意标题中的“之一”,那么什么情况下,列表会使用链表作为其数据结构呢? 答案就是——列表键包含了大量的元素,或者列表中包含的元素都是比较长的字符串. Ok,由于链表大家都比较熟悉,接下来就直接给出链表 ...

  9. 经典案例复盘——运维专家讲述如何实现K8S落地(摘抄)

    以下是运满满K8s容器化进程记录,摘抄一下,方便以后查阅. 背景介绍 运满满自开始微服务改造以来,线上线下已有数千个微服务的 Java 实例在运行中.这些 Java 实例部署在数百台云服务器或虚机上, ...

  10. iOS 组件化路由框架 WisdomRouterKit 的应用

    [前言] 大家好,写作是为了和读者沟通交流,欢迎各位开发者一起了解 WisdomRouterKit SDK 的功能. 关于 iOS 组件化路由方案框架: WisdomRouterKit 的功能介绍,之 ...