Vue入门
1. Vue 是什么?为什么后端也要学?
- Vue 是一个渐进式前端框架,专门用来构建用户界面(View层)。
- 核心特点:声明式渲染
- 组件化
- 响应式系统。
- 组件化
- 和你熟悉的后端不同,前端关注“数据变化 → 页面自动更新”,Vue 把这部分做得非常简单。
- 学习Vue后,你能快速做出交互丰富的管理后台、单页应用(SPA)。
推荐直接看官方文档(中文极好): Vue 3 官方文档
2. 快速起步(10分钟搭建第一个项目)
使用 Vite(官方推荐,最快最现代的构建工具):
CodeBlock Loading...
打开 http://localhost:5173,就能看到“Hello Vue”页面。
项目结构重点看:
src/App.vue:根组件(单文件组件,.vue文件集成了HTML、JS、CSS)src/main.js:入口文件,创建Vue应用实例
3. 单文件组件(.vue文件)结构
每个.vue文件分为三部分:
CodeBlock Loading...
这就是Vue最常见的写法,后面所有例子都基于<script setup>。
4. 核心概念
4.1 响应式数据(ref / reactive)
Vue 最牛的地方:数据变了,页面自动更新。
CodeBlock Loading...
4.2 模板语法
- 插值:
{{ expression }} - 指令(以v-开头):
v-bind(缩写:)绑定属性:<img :src="imgUrl">v-on(缩写@)绑定事件:<button @click="handleClick">v-model双向绑定表单:<input v-model="searchText">v-if / v-else条件渲染v-for列表渲染(必须加:key)
CodeBlock Loading...
4.3 计算属性(computed)
当你需要基于响应式数据做计算时用,避免在模板里写复杂逻辑。
CodeBlock Loading...
4.4 事件处理
CodeBlock Loading...
4.5 生命周期
组件的生命周期大致流程:
CodeBlock Loading...
- 创建阶段:实例被创建,data/props 初始化(适合初始化数据)
- 挂载阶段:模板编译、DOM 插入(适合发请求、操作 DOM)
- 更新阶段:数据变化触发(适合处理副作用)
- 销毁阶段:组件移除(适合清理定时器、事件监听)
4.5.2. 完整钩子对比表(Vue 3)
| 阶段 | Options API(旧写法) | Composition API(新写法,) | 常见用途 |
|---|---|---|---|
| 创建前 | beforeCreate | setup() 开始 | 几乎不用(实例还没创建) |
| 创建后 | created | setup() 结束 | 初始化数据、发初始请求(不能操作 DOM) |
| 挂载前 | beforeMount | onBeforeMount | 模板已编译,但还没插入 DOM |
| 挂载后 | mounted | onMounted | 最常用:发请求、操作 DOM、启动定时器 |
| 更新前 | beforeUpdate | onBeforeUpdate | 数据变了,即将重新渲染(可访问旧 DOM) |
| 更新后 | updated | onUpdated | 渲染完成(慎用,容易无限循环) |
| 销毁前 | beforeUnmount | onBeforeUnmount | 即将移除,清理资源 |
| 销毁后 | unmounted | onUnmounted | 常用:清理定时器、事件监听、订阅 |
| 错误捕获 | errorCaptured | onErrorCaptured | 子组件报错时捕获 |
| keep-alive 激活 | activated | onActivated | 缓存组件被激活时 |
| keep-alive 失活 | deactivated | onDeactivated | 缓存组件被停用时 |
4.5.3. 代码示例对比
Options API 写法(传统对象式,很多老教程用这个)
CodeBlock Loading...
Composition API 写法(Vue 3 推荐, 最简洁)
CodeBlock Loading...
5. 组件化(Vue的灵魂)
- 所有页面都是组件嵌套而成。
- 创建组件:新建一个.vue文件即可。
父组件 → 子组件传值(props)
子组件 Child.vue:
CodeBlock Loading...
父组件使用:
CodeBlock Loading...
子组件 → 父组件通信(emit)
子组件:
CodeBlock Loading...
父组件:
CodeBlock Loading...
6. 常用进阶
6.1 Vue Router(路由)
安装:npm install vue-router@4
基本配置(src/router/index.js):
CodeBlock Loading...
main.js 中使用:
CodeBlock Loading...
模板中使用:
CodeBlock Loading...
6.2 Pinia(状态管理,Vue官方推荐,替代Vuex)
安装:npm install pinia
创建 store(src/stores/counter.js):
CodeBlock Loading...
任意组件中使用:
CodeBlock Loading...
推荐UI组件库(省大量CSS时间):
- Element Plus(最流行)
- Naive UI