一文概览 Vue 2 和 Vue 3 的组件通信及区别
·
一、Vue 3
父子组件间:
-
props(父 ↔ 子)
-
$emit(子 → 父)
-
v-model(父 ↔ 子)
-
$refs(父 → 子)
-
$parent(子 → 父)
-
slot(普通插槽-默认 / 具名插槽)(父 → 子) / scoped-slot(作用域插槽)(父 ↔ 子)
祖孙组件间:
-
$attrs(祖 → 孙)
-
provide / inject(祖 ↔ 孙)
任意组件间:
-
mitt(任意 ↔ 任意)
-
pinia(任意 ↔ 任意)
二、Vue 2
父子组件间:
-
props(父 ↔ 子)
-
$emit(子 → 父)
-
.sync(父 ↔ 子)
-
$refs(父 → 子)
-
$parent / $children(父 ↔ 子)
-
slot(普通插槽-默认 / 具名插槽)(父 → 子) / scoped-slot(作用域插槽)(父 ↔ 子)
祖孙组件间:
-
$attrs / $listeners(祖 → 孙)
-
provide / inject(祖 ↔ 孙)
任意组件间:
-
事件总线(EventBus)(任意 ↔ 任意)
-
vuex(任意 ↔ 任意)
三、Vue 3 vs Vue 2 区别
-
移除事件总线 → 使用 mitt
-
vuex → 替换为 pinia
-
.sync → 合并进 v-model
-
$listeners → 合并进 $attrs
-
$children → 被移除
更多推荐


所有评论(0)