← 全部文章

Vue 3 Composition API 实用技巧

2026-05-05#Vue561 字 · 约 1 分钟Read in English ↗

结论先行

ref、reactive、computed 该怎么选?看这一篇就够。

已实测Vue

ref vs reactive

一句话总结:优先用 ref

import { ref, reactive } from 'vue'

// ✅ 推荐:基本类型 + 对象都能 ref
const count = ref(0)
const user = ref({ name: 'Alice', age: 18 })

// ⚠️ 仅在确定只放对象时用 reactive
const state = reactive({ count: 0 })

reactive 有两个坑:

  1. 不能直接解构(解构后失去响应性)
  2. 不能整体替换(只能逐个赋值)

computed 是缓存的

只要依赖不变,多次访问只计算一次:

const fullName = computed(() => `${first.value} ${last.value}`)

console.log(fullName.value) // 计算
console.log(fullName.value) // 命中缓存

watch 的三种写法

// 监听 ref
watch(count, (n, o) => console.log(n, o))

// 监听 getter
watch(() => user.value.age, (n) => console.log(n))

// 立即执行 + 深度
watch(source, cb, { immediate: true, deep: true })

记住:watchEffect 自动收集依赖,但更难调试,慎用。

这篇对你有用吗?

如果这篇文章对你有帮助,可以请博主喝杯咖啡 ☕