{"id":18519982,"url":"https://github.com/ma63d/vue-analysis","last_synced_at":"2025-04-05T03:08:58.085Z","repository":{"id":143943004,"uuid":"82278154","full_name":"Ma63d/vue-analysis","owner":"Ma63d","description":"Vue 源码注释版 及 Vue 源码详细解析","archived":false,"fork":false,"pushed_at":"2018-08-30T12:13:42.000Z","size":142,"stargazers_count":772,"open_issues_count":7,"forks_count":100,"subscribers_count":126,"default_branch":"master","last_synced_at":"2025-03-29T02:05:01.133Z","etag":null,"topics":["code-analysis","source-code","vue","vuejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ma63d.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-02-17T09:04:21.000Z","updated_at":"2025-02-10T08:52:01.000Z","dependencies_parsed_at":"2024-01-13T20:38:13.171Z","dependency_job_id":"ec425330-2cf2-4af2-a03b-ce2266e5d0fb","html_url":"https://github.com/Ma63d/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/Ma63d%2Fvue-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ma63d%2Fvue-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ma63d%2Fvue-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ma63d%2Fvue-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ma63d","download_url":"https://codeload.github.com/Ma63d/vue-analysis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280270,"owners_count":20912967,"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":["code-analysis","source-code","vue","vuejs"],"created_at":"2024-11-06T17:18:10.325Z","updated_at":"2025-04-05T03:08:58.066Z","avatar_url":"https://github.com/Ma63d.png","language":"JavaScript","readme":"\n## 此项目已不再维护、不再更新\n项目已经过去两年， 近两年时间里涌现太多 Vue/ Vuex 源码分析，佳作太多，而我因工作技术栈为 React，已经没有很长时间没有使用 Vue。故这一项目不再维护、更新，原计划书写的部分在网上已有大量重复内容，故就不再书写了，sorry。\n\n------\n原文:\n# vue-analysis\nVue源码注释版 及 Vue源码详细解析\n本项目介绍的源码版本是当前(17年2月23日)1.x版本的最新版v1.0.26，2.x版本的源码会在之后更新。\n\n## Vue源码详细解析\n\nVue源码详细解析教程包含了Vue中从数据observe到模板解析、transclude、compile、link、指令的bind、update、dom批处理更新、数组diff等等环节，基本涵盖了Vue整个生命周期过程。订阅新文章请watch本项目。\n\n### 文章 **主线剧情**\n* [Vue源码详细解析(一)--数据的响应化](https://github.com/Ma63d/vue-analysis/issues/1)\n\n  主要介绍了Vue如何实现数据的相应化，以及面对getter/setter无法监听属性删除、添加的缺点，Vue是如何弥补。\n* [Vue源码详细解析(二)-- _compile函数的整体介绍与transclude分析](https://github.com/Ma63d/vue-analysis/issues/2)\n  介绍Vue如何将HTML模板转化为真正的dom。\n* [Vue源码详细解析(三)--compile函数：指令的提取](https://github.com/Ma63d/vue-analysis/issues/3)\n  详细阐述指令提取与解析插值模板的过程。\n* [Vue源码详细解析(四)--link函数](https://github.com/Ma63d/vue-analysis/issues/4)\n  结合具体的指令分析其构建、bind、update过程，并阐述了依赖订阅、退订和表达式如何解析为对应get函数相关内容。\n* [Vue源码详细解析(五)--batcher：数据变动后的批处理更新dom](https://github.com/Ma63d/vue-analysis/issues/5)\n\n### 文章 **支线剧情**\n*阅读之前,请先阅读完主线剧情的内容,我在书写时也默认您已经看完主线系列文章,不会再细说Vue核心部分的内容.*\n\n* [Vue源码详解之nextTick：MutationObserver只是浮云，microtask才是核心！](https://github.com/Ma63d/vue-analysis/issues/6)\n* [Vue源码详解之v-for](https://github.com/Ma63d/vue-analysis/issues/7)\n\n### 正在书写\n\n- [ ] Vue源码详细解析--计算属性与lazy watcher\n- [ ] Vue源码详细解析--`_digest`方法与shallow update\n\n## [Vue源码注释版](https://github.com/Ma63d/vue-analysis/tree/master/vue%E6%BA%90%E7%A0%81%E6%B3%A8%E9%87%8A%E7%89%88)\n\n[源码注释版](https://github.com/Ma63d/vue-analysis/tree/master/vue%E6%BA%90%E7%A0%81%E6%B3%A8%E9%87%8A%E7%89%88)比文章要更加详细，对于看源码的同学，应该能帮到你。\n\n虽然Vue本身的英文注释已经足够详尽，但依然有许多对于初看源码的同学而言比较难以理解的部分。主要是Vue实现的功能较多，因此，许多代码不知道其目的所在。因此我尽量注释了一些让人困惑的部分。对于许多已经很清晰的代码，如util部分、event部分，则基本没有涉及。\n\n目前注释版依然有许多空缺，比如繁多的Vue指令部分。欢迎大家随时提PR。\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fma63d%2Fvue-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fma63d%2Fvue-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fma63d%2Fvue-analysis/lists"}