{"id":13559679,"url":"https://github.com/ustbhuangyi/vue-analysis","last_synced_at":"2025-05-14T03:06:05.312Z","repository":{"id":38184609,"uuid":"101625394","full_name":"ustbhuangyi/vue-analysis","owner":"ustbhuangyi","description":":thumbsup: Vue.js 源码分析","archived":false,"fork":false,"pushed_at":"2023-07-18T03:12:29.000Z","size":9860,"stargazers_count":7698,"open_issues_count":67,"forks_count":1650,"subscribers_count":183,"default_branch":"master","last_synced_at":"2025-04-03T17:39:23.120Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://ustbhuangyi.github.io/vue-analysis/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ustbhuangyi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-08-28T09:09:37.000Z","updated_at":"2025-04-02T08:00:49.000Z","dependencies_parsed_at":"2023-01-26T21:15:46.785Z","dependency_job_id":"e80216c2-742c-46c0-a227-b64bf2447775","html_url":"https://github.com/ustbhuangyi/vue-analysis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustbhuangyi%2Fvue-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustbhuangyi%2Fvue-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustbhuangyi%2Fvue-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustbhuangyi%2Fvue-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ustbhuangyi","download_url":"https://codeload.github.com/ustbhuangyi/vue-analysis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248294618,"owners_count":21079937,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T13:00:31.045Z","updated_at":"2025-04-10T20:45:02.514Z","avatar_url":"https://github.com/ustbhuangyi.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","框架","目录","前端"],"sub_categories":["Vue.js"],"readme":"# Vue.js 技术揭秘\n\n[电子书](https://ustbhuangyi.github.io/vue-analysis/)\n\n目前社区有很多 Vue.js 的源码解析文章，但是质量层次不齐，不够系统和全面，这本电子书的目标是全方位细致深度解析 Vue.js 的实现原理，让同学们可以彻底掌握 Vue.js。目前分析的版本是 Vue.js 的最新版本 Vue.js 2.5.17-beta.0，并且之后会随着版本升级而做相应的更新，充分发挥电子书的优势。\n\n这本电子书是作为 [《Vue.js 源码揭秘》](http://coding.imooc.com/class/228.html)视频课程的辅助教材。电子书是开源的，同学们可以免费阅读，视频是收费的，25+小时纯干货课程，如果有需要的同学可以购买来学习，**但请务必支持正版，请尊重作者的劳动成果**。\n\n## 章节目录\n\n为了把 Vue.js 的源码讲明白，课程设计成由浅入深，分为核心、编译、扩展、生态四个方面去讲，并拆成了八个章节，如下图：\n\n\u003cimg src=\"https://ustbhuangyi.github.io/vue-analysis/assets/mind.png\"\u003e\n\n**第一章：准备工作**\n\n介绍了 Flow、Vue.js 的源码目录设计、Vue.js 的源码构建方式，以及从入口开始分析了 Vue.js 的初始化过程。\n\n**第二章：数据驱动**\n\n详细讲解了模板数据到 DOM 渲染的过程，从 `new Vue` 开始，分析了 `mount`、`render`、`update`、`patch` 等流程。\n\n**第三章：组件化**\n\n分析了组件化的实现原理，并且分析了组件周边的原理实现，包括合并配置、生命周期、组件注册、异步组件。\n\n**第四章：深入响应式原理**\n\n详细讲解了数据的变化如何驱动视图的变化，分析了响应式对象的创建，依赖收集、派发更新的实现过程，一些特殊情况的处理，并对比了计算属性和侦听属性的实现，最后分析了组件更新的过程。\n\n**第五章：编译**\n\n从编译的入口函数开始，分析了编译的三个核心流程的实现：`parse` -\u003e `optimize` -\u003e `codegen`。\n\n**第六章：扩展**\n\n详细讲解了 `event`、`v-model`、`slot`、`keep-alive`、`transition`、`transition-group` 等常用功能的原理实现，该章节作为一个可扩展章节，未来会分析更多 Vue 提供的特性。\n\n**第七章：Vue-Router**\n\n分析了 Vue-Router 的实现原理，从路由注册开始，分析了路由对象、`matcher`，并深入分析了整个路径切换的实现过程和细节。\n\n**第八章：Vuex**\n\n分析了 Vuex 的实现原理，深入分析了它的初始化过程，常用 API 以及插件部分的实现。\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fustbhuangyi%2Fvue-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fustbhuangyi%2Fvue-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fustbhuangyi%2Fvue-analysis/lists"}