{"id":13490834,"url":"https://github.com/answershuto/learnVue","last_synced_at":"2025-03-28T07:31:30.972Z","repository":{"id":37306888,"uuid":"89577951","full_name":"answershuto/learnVue","owner":"answershuto","description":":octocat:Vue.js 源码解析","archived":false,"fork":false,"pushed_at":"2023-02-16T16:48:01.000Z","size":2404,"stargazers_count":12701,"open_issues_count":19,"forks_count":2573,"subscribers_count":490,"default_branch":"master","last_synced_at":"2025-03-27T05:01:48.227Z","etag":null,"topics":["diff","dom","dom-nexttick","vue","vue-router","vue-template","vuex"],"latest_commit_sha":null,"homepage":"https://github.com/answershuto/learnVue","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/answershuto.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-27T09:03:08.000Z","updated_at":"2025-03-27T01:26:28.000Z","dependencies_parsed_at":"2024-09-29T13:00:26.747Z","dependency_job_id":"8a3d940c-df58-4767-857d-ceeb7bf56cb3","html_url":"https://github.com/answershuto/learnVue","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/answershuto%2FlearnVue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/answershuto%2FlearnVue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/answershuto%2FlearnVue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/answershuto%2FlearnVue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/answershuto","download_url":"https://codeload.github.com/answershuto/learnVue/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245989107,"owners_count":20705758,"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":["diff","dom","dom-nexttick","vue","vue-router","vue-template","vuex"],"created_at":"2024-07-31T19:00:51.374Z","updated_at":"2025-03-28T07:31:30.939Z","avatar_url":"https://github.com/answershuto.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","框架","Vue","Uncategorized","书签","优质仓库"],"sub_categories":["Vue.js","源码解析","Uncategorized","Vue"],"readme":"# learnVue\n\n## 介绍\n\nVue.js源码分析，记录了个人学习Vue.js源码的过程中的一些心得以及收获。以及对于Vue框架，周边库的一些个人见解。\n\n在学习的过程中我为Vue.js（2.3.0）、Vuex（2.4.0）、Vue-router（3.0.1）加上了注释，分别在文件夹[vue-src](./vue-src)、[vuex-src](./vuex-src)以及[vue-router-src](./vue-router-src)中，希望可以帮助有需要的同学更好地学习理解Vue.js及周边库的源码。\n\n感谢[尤大](https://github.com/yyx990803)提高生产力。\n\n本项目希望对Vue.js做更进一步的探索与学习，Vue.js基础内容请参考Vue.js官网，[https://cn.vuejs.org/v2/guide/](https://cn.vuejs.org/v2/guide/)。\n可能会有理解存在偏差的地方，欢迎提issue指出，共同学习，共同进步。\n\n---\n\n## 目录\n\n### 源码相关\n\n[Vue.js响应式原理](./docs/响应式原理.MarkDown)\n\n[Vue.js依赖收集](./docs/依赖收集.MarkDown)\n\n[从Vue.js源码角度再看数据绑定](./docs/从源码角度再看数据绑定.MarkDown)\n\n[Vue.js事件机制](./docs/Vue事件机制.MarkDown)\n\n[VNode节点(Vue.js实现)](./docs/VNode节点.MarkDown)\n\n[Virtual DOM与diff(Vue.js实现)](./docs/VirtualDOM与diff(Vue实现).MarkDown)\n\n[聊聊Vue.js的template编译](./docs/聊聊Vue的template编译.MarkDown)\n\n[Vue.js异步更新DOM策略及nextTick](./docs/Vue.js异步更新DOM策略及nextTick.MarkDown)\n\n[从template到DOM（Vue.js源码角度看内部运行机制）](./docs/从template到DOM(Vue.js源码角度看内部运行机制).MarkDown)\n\n[Vuex源码解析](./docs/Vuex源码解析.MarkDown)\n\n[聊聊keep-alive组件的使用及其实现原理](./docs/聊聊keep-alive组件的使用及其实现原理.MarkDown)\n\n### 随笔杂谈\n\n[Vue组件间通信](./docs/Vue组件间通信.MarkDown)\n\n[说说element组件库broadcast与dispatch](./docs/说说element组件库broadcast与dispatch.MarkDown)\n\n---\n\n## 对于新手同学\n\n由于以上内容都是针对 Vue.js 源码进行讲解了，可能有一些不太熟悉源码的同学读起来感觉晦涩难懂。\n\n笔者撰写的[《剖析 Vue.js 内部运行机制》](https://juejin.im/book/5a36661851882538e2259c0f)或许可以帮到你。\n\n\n## 关于作者\n\n作者： 染陌\n\nEmail：answershuto@gmail.com\n\nGithub: [https://github.com/answershuto](https://github.com/answershuto)\n\n知乎：[https://www.zhihu.com/people/cao-yang-49/activities](https://www.zhihu.com/people/cao-yang-49/activities)\n\n掘金：[https://juejin.im/user/58f87ae844d9040069ca7507](https://juejin.im/user/58f87ae844d9040069ca7507)\n\n对内容有任何疑问，欢迎联系我。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanswershuto%2FlearnVue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanswershuto%2FlearnVue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanswershuto%2FlearnVue/lists"}