十、provide 与 inject

郁子小于 1 分钟约 161 字笔记Vue3尚硅谷张天禹

官方文档open in new window

Provide/Inject API With Vue 3open in new window

(一)作用

  • 实现 祖与后代组件间 通信

(二)原理

  • 父组件有一个 provide 选项来提供数据
  • 子组件有一个 inject 选项来开始使用这些数据

(三)具体写法

1.祖组件中

setup() {
  ......
  let car = reactive({
    name: '奔驰',
    price: '40W'
  });
  provide('car', car);
  ......
}
  • 语法糖中需要 provide 计算属性才能维持数据的响应性
<script setup>
  provide(
    "car",
    computed(() => car),
  );
</script>

2.后代组件中

setup(props, context) {
  ......
  const car = inject('car');
  return {
    car,
  }
}
上次编辑于: