先判断值不值得学:这门课解决的是“会写业务”到“会写组件”之间的断层
很多前端开发者都有过类似处境:用 Vue 做过几个项目,页面能写,接口能调,但一旦需要自己封装一个可复用的组件,就不知道从哪里下手。状态怎么设计、props 和事件怎么划分、外部点击关闭怎么做、跨层级通信用什么方案,这些问题在业务代码里很少被正面回答,只能靠一次次搜索和拼凑。
《Vue3 造轮子》针对的正是这个断层。它不教你怎么用现成组件库搭页面,而是带你从零把 Switch、Button、Dialog、Tabs 这类基础组件自己实现一遍,顺带把 Vue3 的响应式、插槽、Teleport、provide/inject 等特性放进真实需求里讲。如果你已经能写 Vue2 或 Vue3 的业务代码,但没独立设计过一个组件,这门课的内容和你的缺口是对得上的。
学完能独立做什么
判断一门课值不值得投入时间,最直接的方法是看学完后能独立完成什么。就这门课而言,比较现实的预期是:
- 能用 Vite 从零起一个组件库项目,包括目录结构、入口文件和基本的构建配置;
- 能独立设计并实现一个带双向绑定、禁用态、尺寸变体的 Switch 或 Button,并想清楚哪些逻辑该放在组件内部、哪些通过 props 暴露给使用方;
- 能实现 Dialog 这类带遮罩、焦点管理和挂载位置控制的组件,理解为什么需要 Teleport,而不是靠 z-index 硬压;
- 能实现 Tabs 的切换与内容分发,理顺插槽和组件通信的配合方式;
- 遇到常见的报错和边界情况时,知道往哪个方向排查,而不是逐个试错。
需要说明的是,课程涉及的是组件开发的通用能力,不是某个组件库的源码逐行解析。学完之后你能自己写组件,但要达到生产级组件库的完整度,还需要在单元测试、无障碍、文档站点这些方向上继续补。
资料适合什么基础的人
这门课的门槛不算低。如果你完全没接触过 Vue,直接上手会比较吃力,因为课程默认你已经理解单文件组件、模板语法和基本的响应式概念。比较合适的基础是:写过至少一个 Vue 项目,知道组件之间怎么传值,能看懂 setup 语法糖。
对于 Vue2 开发者,课程的价值在于把 Vue3 的新特性和组件开发场景绑在一起讲,比单独看 API 文档更容易形成记忆。对于已经在用 Vue3 写业务的人,这门课更像是补上“造”的部分——平时你只用别人的轮子,这次自己造一遍,对组件边界的理解会明显不同。
如果你的目标只是快速做出一个后台管理页面,直接用成熟组件库更省时间,这门课不是最优选择。它更适合愿意花时间弄懂原理、之后要长期维护组件或搭建内部组件库的人。
资料怎么用效率更高
建议不要只看不写。组件开发的很多坑是动手才会遇到的,比如样式作用域、事件透传、Teleport 的目标节点选择,看视频时觉得理所当然,自己写就会卡住。比较合理的节奏是:每节课先看需求描述,暂停,自己尝试实现,再对照讲解调整。
报错部分建议单独整理一份笔记。课程里提到的常见错误,往往是同类问题的代表,记下来之后遇到新报错时可以快速匹配。项目结构部分适合在学完后回看一遍,检查自己的目录划分和课程思路差在哪里,这个复盘比多写一个组件更有价值。
最后,别把课程里的组件直接照搬进生产项目。它们更适合当作练习样本,真正落地时还需要考虑类型定义、边界状态和团队规范。把这门课当成一次系统的组件开发训练,而不是组件库交付,收获会更实在。
课程目录
1-课程介绍 Vue 3 造轮子课程介绍 2-开发环境搭建 0-课程介绍.png 1-windows开发环境搭建.png 2-mac环境搭建.png 3-Volar-Vue终极开发神器!.png 4-课后习题.png 3-常见报错解决办法 1-props.ok.()报错.png 2-rollup -c 报错 error Unexpected.png 3.png 4..png 5.png 6.png 7.png 8.png 9.png 10.png 11.png 4-使用vite搭建官网 0-本章介绍.txt 1-创建项目 2-初始化项目 3-安装并初始化 vue-router 4-创建首页和文档页 5-封装 Topnav 6-用 provide 和 inject 实现切换功能 7-手机页面上的切换按钮 8-路由间切换 9-基本完成官网 10-课后习题.png 5-制作 Switch 组件 0-本章介绍.png 1-初始化 switch 组件 2-切换开关状态 3-添加 value属性和 input 事件 4-父子组件通信 5-小结 6-Vue 3 新版 v-model 用法 7-如何借chao鉴xi别人的皮肤 8-知识点总结 9-课后习题.png 源码领取.txt 6-制作button组件 0-文本.txt 0-本章介绍.png 1-创建 Button 组件 2-Vue 3 属性绑定细节 3-Button 基础样式 4-库 CSS 的两个注意事项 5-CSS最小影响原则 6-完成 Button 组件 7-推荐 Wired Elements 课后习题.png 7-制作 Dialog 组件 0-文本.txt 0-本章介绍.png 1-Dialog需求分析与API设计 2-创建Dialog组件 3-让Dialog支持visible属性 4-让Dialog支持点击关闭 5-让Dialog支持title和content 6-使用具名插槽 7-使用Teleport 8-一句代码打开 Dialog 课后习题.png 8-制作 Tabs 组件 0-文本.txt 0-本章介绍.png 1-创建 Tabs 和 Tab 组件 2-如何检查子组件的类型 3-渲染嵌套的插槽 4-显示被选中的导航 5-显示被选中的内容,失败第一次 6-显示被选中的内容,失败第二次 7-失败了两次,最终使用 CSS 切换内容 8-动态设置 div 的宽度 9-动态设置 div 的位置 10-三处优化代码 11-selectedItem.value is null 错误解决过程 12-总结 13-尤雨溪帮我改bug 讲义 -9-11-11-29-17.pptx -9-11-11-30-19.pdf 课后习题.png 9-官网装修 - 首页 0-文本.txt 0-本章介绍.png 1-整体效果预览 2-从图片中取色 3-首页渐变背景 4-给文字和链接添加样式 5-使用 iconfont.cn 添加 logo 和 icon 6-使用 clip-path 画圆弧 7-完善首页的各种细节 8-总结 课后习题.png 10-官网装修 - 文档页 0-BUG反馈.png 0.0-文本.txt 0.0-本章介绍.png 1-创建更多路由 1-文本.txt 2-高亮当前路由 3-引入 Github 的 Markdown 样式 4-支持 import markdown 文件 5-选看:解释一下 md.ts 6-事不过三,消除重复 7-你的代码有什么缺点 8-展示源代码 9-小优化:使用 component 10-五彩斑斓的源代码 11-神奇的封装:Demo 组件 12-追求完美,永无止境 讲义 -9-18-17-16-18.pptx 课后习题.png 11-发布源代码至 npm 0-本章介绍.png 0-本章介绍.txt 1-解决上节课的遗留问题 2-部署 GitHub Pages 发现 404 3-成功部署官网到 GitHub 4-一键部署 5-修复 Tabs 组件的 bug 6-显示或隐藏代码 7-rollup -c 编译库文件 8-解释 rollup.config.js 9-npm login 和 npm publish 10-模拟别人使用自己的组件 11-修复 watchEffect 12-再次完善官网 13-部署到码云 14-把项目加到简历,Vue 2 如何升级到 Vue 3 讲义 -9-25-8-27-13.pptx 课后习题.png 12-【完结】 本章介绍.png 课程简介.png






