Vue 笔记 · 个人理解

Vue 组件通信:props、emit 与 provide/inject

我给自己定的顺序

  1. 父子之间:先看 props / emit
  2. 跨多层传递且改动不频繁:再看 provide / inject
  3. 多处共享且逻辑复杂:最后才考虑集中式状态管理

父子通信

父传子用 props,子通知父用 emit。数据流向保持单向,排错会轻松很多。

// 父组件
<Child :title="pageTitle" @saved="onSaved" />

// 子组件
const props = defineProps({ title: String })
const emit = defineEmits(['saved'])
emit('saved', payload)

跨层注入

主题配置、当前用户只读信息这类「上层提供、下层消费」的数据, 用 provide/inject 能少传几层 props。我尽量避免用它传递频繁变化且责任不清的状态。

经验:组件通信乱,往往不是 API 不够,而是职责边界没划清。 先问「这份数据该由谁拥有」,再选通信方式。

← 返回 Vue 笔记目录