{"id":21909246,"url":"https://github.com/cycleccc/vue-design","last_synced_at":"2026-04-15T18:03:19.234Z","repository":{"id":217260484,"uuid":"743340248","full_name":"cycleccc/vue-design","owner":"cycleccc","description":"Vue设计与实现 霍春阳版 每章 每节 JS、TS 源码","archived":false,"fork":false,"pushed_at":"2026-04-11T08:18:39.000Z","size":237,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-11T10:16:19.791Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","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/cycleccc.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}},"created_at":"2024-01-15T02:28:05.000Z","updated_at":"2026-04-11T08:18:45.000Z","dependencies_parsed_at":"2024-03-11T09:00:07.941Z","dependency_job_id":null,"html_url":"https://github.com/cycleccc/vue-design","commit_stats":null,"previous_names":["end-cycle/vue-design","cycleccc/vue-design"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cycleccc/vue-design","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleccc%2Fvue-design","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleccc%2Fvue-design/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleccc%2Fvue-design/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleccc%2Fvue-design/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cycleccc","download_url":"https://codeload.github.com/cycleccc/vue-design/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cycleccc%2Fvue-design/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31853280,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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-11-28T17:16:07.953Z","updated_at":"2026-04-15T18:03:19.229Z","avatar_url":"https://github.com/cycleccc.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vue-design\n\n《Vue.js 设计与实现》学习仓库，按章节拆分示例代码。\n\n仓库里的示例主要分两类：\n- `*.html`：用于直接在浏览器里验证章节思路\n- `*.ts` + `*.js`：同一示例的 TypeScript 实现与编译产物\n\n## 快速开始\n\n```bash\npnpm install\n```\n\n## 常用命令\n\n```bash\n# 检查所有示例目录中的 TypeScript（不产出 JS）\npnpm typecheck\n\n# 编译所有示例目录中的 TypeScript（会覆盖对应 .js）\npnpm build:ts\n\n# 重新生成根目录示例索引页（index.html）\npnpm build:index\n\n# 运行第 4-6 章核心响应式最小回归测试\npnpm test\n```\n\n## 目录说明\n\n- `第4章响应系统的作用与实现`：响应式系统基础、effect、watch、computed\n- `第5章非原始值的响应式方案`：Object/Array/Set/Map 的代理与触发策略\n- `第6章原始值的响应式方案`：`ref`、响应丢失、自动脱 ref\n- `第7章渲染器的设计`：渲染器与响应系统结合、自定义渲染器\n- `第8章挂载与更新`：挂载、卸载、事件、子节点更新、Fragment\n- `第9章简单Diff算法`：简单 Diff\n- `第10章双端Diff算法`：双端 Diff\n- `第11章快速Diff算法`：快速 Diff 与 LIS\n- `第12章组件的实现`：组件、props、setup、插槽、生命周期\n- `第13章异步组件与函数式组件`：异步组件与函数式组件\n- `第14章内建组件和模块`：KeepAlive、Teleport、Transition\n- `第15章编译器核心技术概览`：parse、AST 构造、转换与代码生成\n\n## 工程约定\n\n- 每个示例目录保留一个最小 `tsconfig.json`，统一继承根目录共享配置。\n- 示例目录命名统一使用无空格格式（便于跨平台脚本处理）。\n- 根目录共享配置：\n  - `tsconfig.base.json`：通用编译选项\n  - `tsconfig.vue-paths.json`：额外包含 `@vue/*` 路径映射\n- 批量校验脚本：`scripts/typecheck-all.mjs`\n- 示例索引生成脚本：`scripts/generate-index.mjs`\n- 回归测试：`tests/reactivity-regression.test.ts`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycleccc%2Fvue-design","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcycleccc%2Fvue-design","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcycleccc%2Fvue-design/lists"}