vue provide和inject使用

Posted mengfangui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue provide和inject使用相关的知识,希望对你有一定的参考价值。

provide和inject使用场景也是组件传值,尤其是祖父组件--孙组件等有跨度的组件间传值,记住是单向的。孙组件不能向祖父组件传值

provide 选项应该是一个对象或返回一个对象的函数。该对象包含可注入其子孙的属性。

inject 通常是一个字符串数组。

示例:

(1)祖父组件grandpaDom.vue:

<template>
  <div>
    <father-dom :fooNew=‘fooNew‘>
    </father-dom>
  </div>
</template>
<script>
import fatherDom from "./fatherDom.vue";
export default {
  provide: {
    fooNew: "bar"
  },
  data() {
    return {};
  },
  components: { fatherDom },
  methods: {}
};
</script>

(2)父亲组件fatherDom.vue:

<template>
  <div>
    <child-dom></child-dom>
  </div>
</template>
<script>
import childDom from "./childDom.vue";
export default {
  name: "father-dom",
  components: { childDom }
};
</script>

(3)孙组件childDom.vue

<template>
  <div>
    <p>fooNew:{{fooNew}}</p>
  </div>
</template>
<script>
export default {
  name: "childDom",
  inject: ["fooNew"],
  methods: {}
};
</script>

效果:

技术分享图片

 

 

以上是关于vue provide和inject使用的主要内容,如果未能解决你的问题,请参考以下文章

[Vue + TS] Use Dependency Injection in Vue Using @Inject and @Provide Decorators with TypeScript(代码片

[转]浅谈vue中provide和inject 用法

[转]浅谈vue中provide和inject 用法

vue组件之间通信(provide/inject与$attrs/$listeners) 之四

Vue中provide和inject 用法(vue组件爷孙传值)

vue 3 学习笔记 ——provide 和 inject 用法及原理