kohaiy/kohaiy.github.io

Vue 中的 provide 和 inject

Opened this issue · 0 comments

用途:

子组件中需要调用父组件的属性或方法时,可以通过 this.$parent 进行访问,但是多层嵌套组件需要调用很多层,如 this.$parent.$parent,很不好,所以有了 依赖注入

用法:

父组件 中添加方法:

provide: function () {
  return {
    getMap: this.getMap
  }
}

子组件 中添加属性则可以:

inject: ['getMap']

实际上,你可以把依赖注入看作一部分“大范围有效的 prop”,除了:
祖先组件不需要知道哪些后代组件使用它提供的属性
后代组件不需要知道被注入的属性来自哪里

参考链接