掌握vue开发只需聚焦三点:模板用{{}}插值、v-if/v-for等指令;数据通过ref/reactive声明并响应式更新;父子通信靠props传入、emit抛出事件,深层用provide/inject。

想快速上手 Vue 并写出能跑起来的组件,不用等学完所有概念。抓住三个关键点:模板怎么写、数据怎么动、父子怎么传——这三块打通,你就已经站在开发起点上了。
模板语法:像写 HTML,但能算数、能判断、能循环
Vue 模板不是纯静态 HTML,它支持动态内容插入和逻辑控制,但只允许表达式(不能写 if/for 语句):
-
插值:用
{{ message }}显示响应式变量,支持简单运算,比如{{ count + 1 }}或{{ items.length > 0 ? '有数据' : '空' }} -
属性绑定:用
:class="isActive"或:src="avatarUrl"动态设置 HTML 属性;类名对象写法:class="{ active: isActive, disabled: isLocked }"很常用 -
条件与列表:
v-if="showHeader"控制是否渲染;v-for="(item, index) in list" :key="item.id"渲染列表,:key必须写,推荐用唯一 ID 而非 index -
事件绑定:
@click="handleClick"触发方法,支持修饰符如@click.prevent或@input.trim
响应式数据:改数据,视图自动变,但定义方式有讲究
Vue 的核心是“数据驱动视图”,但不同 API 下声明方式不同,初学容易踩坑:
递归分析 Vue 项目组件依赖,从入口文件生成组件层级图,支持 Vue 2/3,输出组件名、文件路径和属性。适用于分析组件结构、排查依赖或了解项目架构。
-
选项式 API(Vue 2 / Vue 3 兼容写法):在
data()函数中返回对象,所有顶层属性自动响应式,例如return { count: 0, name: '' } -
组合式 API(Vue 3 推荐):
- 基础类型(数字、字符串、布尔)用
ref(),读写都带.value(模板里自动解包,不用写count.value) - 对象或数组用
reactive(),直接访问属性,如user.name,但不能直接赋值整个对象(会丢失响应式)
- 基础类型(数字、字符串、布尔)用
-
注意边界:Vue 3 的 Proxy 支持新增/删除属性、数组索引赋值(如
arr[0] = 'new'),但arr.length = 0不触发更新,要用arr.splice(0)或arr.length = 0后手动触发更新
组件通信:父传子、子传父,深层嵌套用 provide/inject
组件之间传递信息有明确分工,不建议跨级直接调用:
-
父 → 子:props
父组件传:
<child title="首页" :count="total"></child>子组件收:用props: ['title', 'count']或更安全的props: { title: String, count: Number } -
子 → 父:emit
子组件内调用
emit('update:title', newTitle)(Vue 3 推荐显式声明defineEmits(['update:title'])) 父组件监听:<child></child> -
深层嵌套场景:比如主题色、语言配置需要多层透传,用
provide在父级注入,子孙用inject获取,避免 props 一层层往下塞
生命周期与逻辑组织:从 mounted 到自定义 Hook
组件挂载、更新、卸载都有对应时机,组合式 API 让逻辑更聚拢:
- 常用钩子:
onMounted()替代mounted,适合发请求;onUnmounted()替代beforeUnmount,清理定时器或事件监听 - 把重复逻辑封装成函数:比如一个获取远程数据、处理 loading 和 error 的流程,可以写成
useFetch(url),在多个组件里复用 - 不要在
setup()里操作this,所有变量、方法都要显式返回或通过 ref/reactive/watch 声明
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










