Vue学习百日计划-Gemini版
核心理念:
- 基础先行: HTML, CSS, JavaScript 是前端的基石,必须扎实。
- 聚焦 Vue 3: 学习当前主流的 Vue 3 版本,重点掌握 Composition API。
- 实践驱动: 每个阶段都要有项目练习,理论结合实践。
- 生态拓展: 掌握 Vue Router, Pinia, Vite 等核心生态工具。
- 深入理解: 关注性能优化、TypeScript、测试等进阶主题。
- 持续学习: 100 天是重要里程碑,但前端技术日新月异,需保持学习习惯。
整体安排:
- 第一阶段(第 1 - 20 天):前端基础强化
- 目标:巩固 HTML, CSS, JavaScript 核心知识,为学习 Vue 打下坚实基础。
- 重点:ES6+ 语法、DOM 操作、异步编程、模块化、Git 基础。
- 项目主题:静态网页(个人简历、产品介绍页)、简单交互效果(Tab 切换、轮播图)。
- 第二阶段(第 21 - 50 天):Vue.js 核心概念
- 目标:深入理解 Vue 3 的核心概念和 API。
- 重点:Vue 实例、模板语法、响应式原理(ref, reactive)、计算属性、侦听器、生命周期、组件化开发(Props, Events, Slots)、Composition API。
- 项目主题:待办事项列表(Todo List)、简单的博客文章列表展示。
- 第三阶段(第 51 - 80 天):Vue 生态与进阶
- 目标:掌握 Vue Router, Pinia,了解 Vite,学习 TypeScript 与 Vue 的结合,接触 UI 库和测试。
- 重点:路由配置、导航守卫、状态管理模式、Pinia 的使用、Vite 构建工具、TypeScript 基础与在 Vue 中的应用、Element Plus/Ant Design Vue 等 UI 库使用、Vitest 单元测试入门。
- 项目主题:带有路由和状态管理的任务管理应用、模拟电商商品列表与详情页。
- 第四阶段(第 81 - 100 天):综合实战与深化
- 目标:整合所学知识,开发更复杂的项目,关注代码质量、性能优化和部署。了解 Nuxt.js。
- 重点:项目架构设计、组件库封装、性能优化技巧、代码规范、项目部署、Nuxt.js 基础。
- 项目主题:完整的带有用户认证(模拟)的后台管理系统、使用 Nuxt.js 构建的 SSR/SSG 应用(如博客)。
详细每日计划:
第一阶段:前端基础强化 (Day 1 - 20)
- Day 1-3: HTML 基础回顾与进阶
- 内容:HTML5 语义化标签 (header, footer, nav, section, article, aside), 表单元素与验证, SEO 基础, 无障碍(Accessibility)概念。
- 掌握:能使用语义化标签构建清晰的页面结构,理解常用表单元素的用法。
- 资源:
- MDN Web Docs (HTML): https://developer.mozilla.org/zh-CN/docs/Web/HTML
- freeCodeCamp (响应式网页设计认证部分): https://www.freecodecamp.org/learn/responsive-web-design/
- Day 4-8: CSS 基础回顾与进阶
- 内容:选择器权重, 盒模型 (Box Model), Flexbox 布局, Grid 布局, 定位 (Positioning), BFC, 响应式设计 (Media Queries), CSS 变量, 过渡 (Transitions)与动画 (Animations) 基础。
- 掌握:熟练运用 Flexbox 和 Grid 进行页面布局,理解响应式设计的原理和实现。
- 资源:
- MDN Web Docs (CSS): https://developer.mozilla.org/zh-CN/docs/Web/CSS
- CSS Tricks (Flexbox 指南): https://css-tricks.com/snippets/css/a-guide-to-flexbox/
- CSS Tricks (Grid 指南): https://css-tricks.com/snippets/css/complete-guide-grid/
- Flexbox Froggy (游戏化学习 Flexbox): https://flexboxfroggy.com/
- Grid Garden (游戏化学习 Grid): https://cssgridgarden.com/
- Day 9-15: JavaScript 核心 (ES6+)
- 内容:数据类型与变量 (
let
,const
), 作用域与闭包,this
指向, 原型链与继承 (基础概念), 数组常用方法 (map
,filter
,reduce
,forEach
等), 字符串方法, 对象操作, 箭头函数, 解构赋值, 模板字符串, 展开/剩余运算符, Promise 与异步编程 (async
/await
), 模块化 (ES Modules)。 - 掌握:熟练运用 ES6+ 常用语法,理解异步编程的核心概念和 Promise/async/await 的用法,掌握模块化导入导出。
- 资源:
- MDN Web Docs (JavaScript): https://developer.mozilla.org/zh-CN/docs/Web/JavaScript
- 现代 JavaScript 教程 (JavaScript.info): https://zh.javascript.info/
- 阮一峰 ECMAScript 6 入门: https://es6.ruanyifeng.com/
- 内容:数据类型与变量 (
- Day 16-18: DOM 操作与事件
- 内容:DOM 节点查找、创建、添加、删除,事件监听 (
addEventListener
),事件冒泡与捕获,事件委托。 - 掌握:能够使用 JS 操作页面元素,理解事件流和事件委托的应用场景。
- 资源:
- MDN Web Docs (Web API - Document Object Model): https://developer.mozilla.org/zh-CN/docs/Web/API/Document_Object_Model
- MDN Web Docs (事件): https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Building_blocks/Events
- 内容:DOM 节点查找、创建、添加、删除,事件监听 (
- Day 19-20: 开发工具与 Git
- 内容:浏览器开发者工具 (DevTools) 使用 (Elements, Console, Network, Sources), Git 基本命令 (
clone
,add
,commit
,push
,pull
,branch
,merge
), npm/yarn 基础命令 (init
,install
,run
)。 - 掌握:熟练使用 DevTools 调试代码,掌握 Git 的基本工作流。
- 资源:
- Chrome DevTools 文档: https://developer.chrome.com/docs/devtools/
- Pro Git (中文版): https://git-scm.com/book/zh/v2 (重点看前几章)
- Learn Git Branching (交互式学习 Git): https://learngitbranching.js.org/
- NPM 文档: https://docs.npmjs.com/
- 阶段项目: 使用 HTML, CSS, 原生 JS 实现一个带简单交互的静态页面,如个人作品集网站或产品着陆页,并使用 Git 进行版本管理。
- 内容:浏览器开发者工具 (DevTools) 使用 (Elements, Console, Network, Sources), Git 基本命令 (
第二阶段:Vue.js 核心概念 (Day 21 - 50)
- Day 21-23: Vue.js 介绍与环境搭建
- 内容:Vue.js 是什么?渐进式框架概念,为什么选择 Vue?使用 Vite 创建 Vue 3 项目,项目结构介绍,第一个 Vue 应用 (
createApp
)。 - 掌握:能够成功创建并运行一个 Vue 3 项目,理解 Vue 应用的基本结构。
- 资源:
- Vue 3 官方文档 (介绍): https://cn.vuejs.org/guide/introduction.html
- Vue 3 官方文档 (快速上手): https://cn.vuejs.org/guide/quick-start.html
- Vite 官方文档: https://cn.vitejs.dev/guide/
- 内容:Vue.js 是什么?渐进式框架概念,为什么选择 Vue?使用 Vite 创建 Vue 3 项目,项目结构介绍,第一个 Vue 应用 (
- Day 24-27: 模板语法
- 内容:文本插值 (
{{ }}
), 原始 HTML (v-html
), Attribute 绑定 (v-bind
或:
), JavaScript 表达式, 指令 (v-if
,v-else-if
,v-else
,v-show
,v-for
), 事件处理 (v-on
或@
), 表单输入绑定 (v-model
), 修饰符 (.prevent
,.stop
,.lazy
,.number
,.trim
)。 - 掌握:熟练运用各种指令实现数据绑定、条件渲染、列表渲染和事件处理。
- 资源:
- Vue 3 官方文档 (模板语法): https://cn.vuejs.org/guide/essentials/template-syntax.html
- Vue 3 官方文档 (条件渲染): https://cn.vuejs.org/guide/essentials/conditional.html
- Vue 3 官方文档 (列表渲染): https://cn.vuejs.org/guide/essentials/list.html
- Vue 3 官方文档 (事件处理): https://cn.vuejs.org/guide/essentials/event-handling.html
- Vue 3 官方文档 (表单输入绑定): https://cn.vuejs.org/guide/essentials/forms.html
- 内容:文本插值 (
- Day 28-32: 响应式核心 (Composition API)
- 内容:
setup
函数,ref
,reactive
,toRefs
,readonly
, 响应式原理基础 (Proxy),computed
计算属性,watch
和watchEffect
侦听器。 - 掌握:理解 Vue 3 的响应式机制,熟练使用
ref
,reactive
,computed
,watch
来处理数据和逻辑。 - 资源:
- Vue 3 官方文档 (组合式 API): https://cn.vuejs.org/guide/introduction.html#composition-api
- Vue 3 官方文档 (响应式基础): https://cn.vuejs.org/guide/essentials/reactivity-fundamentals.html
- Vue 3 官方文档 (计算属性): https://cn.vuejs.org/guide/essentials/computed.html
- Vue 3 官方文档 (侦听器): https://cn.vuejs.org/guide/essentials/watchers.html
- 内容:
- Day 33-35: 生命周期钩子
- 内容:
onMounted
,onUpdated
,onUnmounted
,onBeforeMount
等 Composition API 生命周期钩子,与 Options API 生命周期钩子的对比。 - 掌握:理解组件在不同阶段可以执行的操作,能在合适的钩子中编写代码。
- 资源:
- Vue 3 官方文档 (生命周期钩子): https://cn.vuejs.org/guide/essentials/lifecycle.html
- 内容:
- Day 36-42: 组件化开发
- 内容:组件注册 (全局 vs 局部), Props (传递数据,类型校验), Events (
$emit
子传父),v-model
应用于组件, Slots (默认插槽, 具名插槽, 作用域插槽), Provide/Inject (依赖注入), 动态组件 (<component :is="...">
), 异步组件 (defineAsyncComponent
)。 - 掌握:能够将页面拆分成可复用的组件,熟练掌握组件间通信的各种方式。
- 资源:
- Vue 3 官方文档 (组件基础): https://cn.vuejs.org/guide/essentials/component-basics.html
- Vue 3 官方文档 (组件深入): https://cn.vuejs.org/guide/components/registration.html 到 https://cn.vuejs.org/guide/components/provide-inject.html
- 内容:组件注册 (全局 vs 局部), Props (传递数据,类型校验), Events (
- Day 43-45: Composable 函数 (组合式函数)
- 内容:抽取和复用带状态逻辑,编写自定义 Composable 函数。
- 掌握:理解 Composable 的优势,能够将可复用的逻辑封装成 Composable。
- 资源:
- Vue 3 官方文档 (组合式函数): https://cn.vuejs.org/guide/reusability/composables.html
- Day 46-48: 内置组件与特性
- 内容:
<KeepAlive>
,<Teleport>
,<Transition>
,<TransitionGroup>
。 - 掌握:了解并能在合适场景使用这些内置组件优化体验和性能。
- 资源:
- Vue 3 官方文档 (内置组件): https://cn.vuejs.org/guide/built-ins/keep-alive.html 等
- 内容:
- Day 49-50: Vue Devtools 使用
- 内容:安装和使用 Vue Devtools 浏览器扩展,检查组件层级、状态、事件。
- 掌握:使用 Devtools 调试 Vue 应用。
- 资源:
- Vue Devtools: https://devtools.vuejs.org/
- 阶段项目: 使用 Vue 3 Composition API 构建一个功能完善的 Todo List 应用,包含添加、删除、标记完成、筛选(全部/已完成/未完成)功能。组件化,状态管理在组件内部或使用简单 Provide/Inject。
第三阶段:Vue 生态与进阶 (Day 51 - 80)
- Day 51-56: Vue Router (路由管理)
- 内容:安装配置, 路由模式 (Hash vs History), 基本路由配置 (
routes
), 路由链接 (<RouterLink>
), 视图渲染 (<RouterView>
), 动态路由匹配 (参数传递), 编程式导航 (router.push
), 命名路由, 命名视图, 重定向与别名, 路由守卫 (全局, 路由独享, 组件内), 路由懒加载。 - 掌握:能够配置复杂的路由规则,实现页面跳转和参数传递,使用导航守卫控制访问权限。
- 资源:
- Vue Router 官方文档: https://router.vuejs.org/zh/
- 内容:安装配置, 路由模式 (Hash vs History), 基本路由配置 (
- Day 57-62: Pinia (状态管理)
- 内容:为什么需要状态管理?Pinia 介绍与安装, 定义 Store (
defineStore
), State, Getters, Actions, 在组件中使用 Store, Store 之间的组合与调用, 插件。与 Vuex 对比。 - 掌握:能够使用 Pinia 管理应用的全局状态,理解其核心概念和 API。
- 资源:
- Pinia 官方文档: https://pinia.vuejs.org/zh/
- 内容:为什么需要状态管理?Pinia 介绍与安装, 定义 Store (
- Day 63-65: Vite 深入
- 内容:Vite 配置 (
vite.config.js
), 环境变量, CSS 预处理器 (Sass/Less) 集成, 静态资源处理, 代理 (Proxy) 配置, 构建优化基础。 - 掌握:能够配置 Vite 以满足项目需求,如配置代理解决跨域问题。
- 资源:
- Vite 官方文档 (功能): https://cn.vitejs.dev/guide/features.html
- Vite 官方文档 (配置): https://cn.vitejs.dev/config/
- 内容:Vite 配置 (
- Day 66-71: TypeScript 与 Vue
- 内容:TypeScript 基础语法 (类型注解, 接口 Interface, 类型别名 Type, 泛型), 在 Vue 项目中启用 TS,
defineComponent
, 为 Props 和 Emits 添加类型,ref
/reactive
的类型推断与指定, Composable 函数的类型。 - 掌握:理解 TypeScript 的基本概念,能在 Vue 项目中应用 TS 提高代码健壮性。
- 资源:
- TypeScript 官方文档 (中文): https://www.typescriptlang.org/zh/docs/
- Vue 3 官方文档 (TypeScript 支持): https://cn.vuejs.org/guide/typescript/overview.html
- 内容:TypeScript 基础语法 (类型注解, 接口 Interface, 类型别名 Type, 泛型), 在 Vue 项目中启用 TS,
- Day 72-75: UI 组件库使用
- 内容:选择一个主流 UI 库 (如 Element Plus, Ant Design Vue, Naive UI), 按需引入, 基本组件使用 (Button, Input, Table, Form, Modal 等), 主题定制基础。
- 掌握:能够快速使用 UI 库构建界面,提高开发效率。
- 资源:(以 Element Plus 为例)
- Element Plus 官方文档: https://element-plus.org/zh-CN/
- Day 76-80: 前端测试入门 (Vitest)
- 内容:测试的重要性, 测试类型 (单元测试, 集成测试, E2E 测试), Vitest 介绍与配置, 编写第一个单元测试 (测试 Composable 函数), 测试 Vue 组件 (
@vue/test-utils
), 快照测试, Mocking 基础。 - 掌握:理解单元测试的基本概念,能为简单的函数和组件编写测试用例。
- 资源:
- Vitest 官方文档: https://cn.vitest.dev/
- Vue Test Utils 官方文档: https://test-utils.vuejs.org/
- 阶段项目: 开发一个带有路由和全局状态管理的任务管理应用或简单的电商平台前端(商品列表、商品详情、购物车)。集成 UI 库,尝试使用 TypeScript 编写,并为部分核心逻辑或组件编写单元测试。
- 内容:测试的重要性, 测试类型 (单元测试, 集成测试, E2E 测试), Vitest 介绍与配置, 编写第一个单元测试 (测试 Composable 函数), 测试 Vue 组件 (
第四阶段:综合实战与深化 (Day 81 - 100)
- Day 81-85: 项目架构与代码规范
- 内容:大型项目的文件结构组织 (按功能 / 按类型), 代码风格统一 (ESLint, Prettier 配置), 组件设计原则 (单一职责, 可复用性), 封装可复用组件/Composable。
- 掌握:能够组织更大型的项目结构,遵循统一的代码规范,编写高质量、可维护的代码。
- 资源:
- ESLint 官方文档: https://eslint.org/
- Prettier 官方文档: https://prettier.io/
- 阅读优秀开源 Vue 项目的源码结构。
- Day 86-90: 性能优化
- 内容:Vue 应用性能瓶颈分析 (DevTools Performance/Vue Devtools), 代码层面优化 (v-show vs v-if, computed 缓存, 合理使用 watch), 懒加载 (路由懒加载, 组件异步加载), 虚拟列表 (处理大数据量渲染), KeepAlive 缓存, Tree shaking, Bundle 分析 (如
rollup-plugin-visualizer
)。 - 掌握:了解常见的 Vue 性能优化手段,并能在项目中实践。
- 资源:
- Vue 3 官方文档 (性能优化): https://cn.vuejs.org/guide/best-practices/performance.html
- Web.dev (性能相关文章): https://web.dev/performance/
- 内容:Vue 应用性能瓶颈分析 (DevTools Performance/Vue Devtools), 代码层面优化 (v-show vs v-if, computed 缓存, 合理使用 watch), 懒加载 (路由懒加载, 组件异步加载), 虚拟列表 (处理大数据量渲染), KeepAlive 缓存, Tree shaking, Bundle 分析 (如
- Day 91-93: 网络请求与状态处理
- 内容:使用 Axios 或 Fetch 发送 HTTP 请求, 封装请求模块, 处理请求状态 (Loading, Error), Token 认证机制 (JWT 基础), Interceptors (请求/响应拦截)。
- 掌握:能够熟练地与后端 API 交互,处理认证和各种请求状态。
- 资源:
- Axios 文档: https://axios-http.com/
- MDN Fetch API: https://developer.mozilla.org/zh-CN/docs/Web/API/Fetch_API
- Day 94-97: Nuxt.js 入门
- 内容:Nuxt.js 是什么 (SSR/SSG 框架)?基本使用,基于文件的路由,数据获取 (
useFetch
,useAsyncData
), SEO 优化。 - 掌握:了解 Nuxt.js 的基本概念和优势,能够搭建简单的 Nuxt 应用。
- 资源:
- Nuxt 3 官方文档: https://nuxt.com/docs/getting-started/introduction
- 内容:Nuxt.js 是什么 (SSR/SSG 框架)?基本使用,基于文件的路由,数据获取 (
- Day 98-100: 项目部署与总结
- 内容:Vite 打包构建 (
npm run build
), 选择部署平台 (Netlify, Vercel, GitHub Pages, 或自有服务器 Nginx 配置), 持续集成/持续部署 (CI/CD) 概念。回顾 100 天学习,总结知识体系,查漏补缺。 - 掌握:能够将 Vue 项目打包并部署到线上。
- 资源:
- Vite 官方文档 (构建生产版本): https://cn.vitejs.dev/guide/build.html
- Netlify, Vercel 等平台文档。
- 阶段项目: 选择一个更复杂的项目进行实战,例如:
- 后台管理系统: 包含登录、权限控制(模拟)、图表展示、CRUD 操作。
- 带有 Nuxt.js 的博客或内容站: 利用 Nuxt 的 SSR/SSG 特性优化 SEO 和首屏加载。
- 对之前的项目进行重构,应用 TypeScript、性能优化、测试等。
- 内容:Vite 打包构建 (
给新手的建议:
- 动手实践: 看十遍不如写一遍。每天都要写代码,哪怕只是跟着教程敲。
- 官方文档是第一选择: Vue 及其生态的官方文档质量非常高,遇到问题优先查阅。
- 理解原理: 不要只满足于会用 API,尝试理解其背后的原理(如响应式、虚拟 DOM Diff),这有助于你解决更复杂的问题。
- 阅读源码: 当你对某个功能或库很熟悉后,尝试阅读它的源码,能极大提升理解深度。可以从简单的工具函数或组件开始。
- 善用工具: 熟练使用 VS Code、浏览器 DevTools、Vue Devtools 能极大提高开发效率和调试能力。
- 加入社区: 关注 Vue 相关的论坛、博客、GitHub 仓库,参与讨论,了解最新动态。
- 保持耐心和热情: 学习过程中遇到困难是正常的,保持积极心态,持续投入。100 天达到中高级是非常有挑战的,更重要的是建立起扎实的基础和持续学习的能力。这个计划是一个理想化的路径,根据你的实际情况灵活调整进度。