{"id":16977199,"url":"https://github.com/zhaoyiming0803/into-vue","last_synced_at":"2025-03-22T14:31:56.188Z","repository":{"id":113416942,"uuid":"158062248","full_name":"zhaoyiming0803/into-vue","owner":"zhaoyiming0803","description":"Into Vue.js v2.5.18","archived":false,"fork":false,"pushed_at":"2023-11-21T11:44:05.000Z","size":3548,"stargazers_count":29,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-18T12:03:38.078Z","etag":null,"topics":["javascript","vuejs2"],"latest_commit_sha":null,"homepage":"","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/zhaoyiming0803.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-18T08:05:12.000Z","updated_at":"2023-07-01T20:02:17.000Z","dependencies_parsed_at":"2023-11-21T12:48:07.560Z","dependency_job_id":null,"html_url":"https://github.com/zhaoyiming0803/into-vue","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/zhaoyiming0803%2Finto-vue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhaoyiming0803%2Finto-vue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhaoyiming0803%2Finto-vue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhaoyiming0803%2Finto-vue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhaoyiming0803","download_url":"https://codeload.github.com/zhaoyiming0803/into-vue/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244972344,"owners_count":20540964,"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":["javascript","vuejs2"],"created_at":"2024-10-14T01:28:19.112Z","updated_at":"2025-03-22T14:31:54.790Z","avatar_url":"https://github.com/zhaoyiming0803.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"### 前言\n\n最近几个月一直在研究 Vue 源码，踩了很多坑，特别是刚开始，不清楚 Vue 源码整体构成，好几次被某一个 function 的逻辑带进去出不来，好在后期找到了方法，现在将这几个月的研究心得记录下来，一方面当作自己的笔记，梳理思路，也方便后期回顾，另一方面，将笔记开源到 github，希望对 Vue 源码同样感兴趣的童鞋有帮助。\n\n### 学习目标\n\n- 了解 Vue 内部的实现机制，提高开发效率\n- 学习 Vue 源码优秀的代码技巧\n\n### 笔记涵盖\n\n- 了解 Vue 源码目录设计\n- 找到 Vue 构造函数的源头文件\n- 从 new Vue 开始，学习各种 mixin 方法\n- Vue 的 options 选项合并，其中包括各种 normolize 及不同选项的不同合并策略，最终生成\\$options\n- Vue 实例化过程中，一系列的 init 方法及生命周期的执行\n- 响应式数据原理，搞清楚 依赖 、观察者 、 订阅 、 发布 之间的关系与执行顺序\n- vnode 生成的整个 render 过程，包括组件 vnode 和普通 vnode\n- 将 vnode 渲染到页面的 patch 过程\n\n## 横向对比 [React](https://github.com/zhaoyiming0803/into-react18)\n\n- 理解不同框架背后思想\n- 思考如何写出易维护、高性能的组件\n- 避免踩坑\n- 学习优秀的代码技巧\n\n### 目录\n\n\u003cpre\u003e\n├── docs      // 笔记文档\n├── examples  // 笔记中用到的实例代码\n├── vue-code  // vue源码核心部分\n\u003c/pre\u003e\n\n### 对 Vue 响应式原理的模拟\n\nhttps://github.com/zhaoyiming0803/test-code/blob/master/test64.js\n\n### debug snabbdom\n\nhttps://github.com/zhaoyiming0803/test-code/tree/master/test131-snabbdom\n\n### 说明\n\n- 笔记持续更新中，如果对您有帮助，您可以点右上角 \"Star\" 或 \"Watch\" 支持一下，不要 Fork， 谢谢！ ^\\_^\n- 或者您可以 \"follow\" 一下，我会不断开源更多的有趣的项目\n- 如有问题请直接在 Issues 中提，或者您发现问题并有非常好的解决方案，欢迎 PR 👍\n\n### 个人微信\u0026QQ：1047832475\n\u003cimg src=\"https://github.com/zhaoyiming0803/zhaoyiming0803/raw/master/wechat.jpeg\" width=\"200\" height=\"200\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhaoyiming0803%2Finto-vue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhaoyiming0803%2Finto-vue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhaoyiming0803%2Finto-vue/lists"}