在 Vue3 中,可以通过 provide 方法来注入多个方法。可以使用对象的方式来提供多个方法,如下所示:

// 定义一个对象,包含多个方法
const myMethods = {
  method1() { 
    console.log('method1') 
  },
  method2() { 
    console.log('method2') 
  }
}

// 在父组件中使用 provide 方法提供 myMethods 对象
export default {
  provide() {
    return {
      myMethods
    }
  }
}

在子组件中,可以使用 inject 方法来获取 myMethods 对象,并访问其中的方法,如下所示:

// 在子组件中使用 inject 方法获取 myMethods 对象
export default {
  inject: ['myMethods'],
  mounted() {
    // 调用 myMethods 对象中的 method1 方法
    this.myMethods.method1()

    // 调用 myMethods 对象中的 method2 方法
    this.myMethods.method2()
  }
}

注意,在子组件中使用 inject 方法获取到的对象是只读的,不能修改其中的属性和方法。如果需要修改,可以在子组件中复制一份对象,并在复制的对象上进行操作。

Vue3 Provide 注入多个方法:简化组件通信

原文地址: https://www.cveoy.top/t/topic/nw79 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录