provide和inject的使用注意事项

283 阅读1分钟

前言

provide和inject是Vue3来实现父组件与子组件间通信
套路:父组件有一个provide选项来提供数据,子组件有一个inject选项来开始使用这些数据

provide和inject的使用

父组件:

export default {
  components: { Child },
  setup() {
    let car = reactive({ name: "123", price: "456" });
    provide("car", car);
    return {
      ...toRefs(car),
    };
  },

子组件:

  setup() {
    let car = inject("car");
    return {
      car,
    };
  },

provide和inject的注意事项

(1)provide和inject需要在setup()方法中且不能在内嵌的生命周期中使用,否则会报错

image.png

因此inject在获取父组件provide传递的数据时,需要同步获取