Vue2之使用provide和inject实现两个不相干组件之间的通信

Vue2之使用provide和inject实现两个不相干组件之间的通信

在Vue 2中以使用provideinject来实现两个不相干组件之间的通信。provide允许在祖先组件中提供数据,而inject允许后代组件在其祖先组件提供的数据中注入并使用它们。

1. 祖先组件中使用provide提供数据

祖先组件ancestor内容如下,在祖先组件中通过provide提供数据

<!-- Ancestor.vue -->
<template>
  <div>
    <DescendantA />
    <DescendantB />
  </div>
</template>

<script>
import Vue from 'vue';
import DescendantA from './DescendantA.vue';
import DescendantB from './DescendantB.vue';

export default {
  components: {
    DescendantA,
    DescendantB
  },
  provide: {
    message: 'Hello World from Ancestor'
  }
};
</script>

2.后代组件A中使用inject注入并使用数据

<!-- DescendantA.vue -->
<template>
  <div>
    <p>Descendant Component A</p>
    <p>{{ providedMessage }}</p>
  </div>
</template>

<script>
export default {
  //注入 message 信息
  inject: ['message'],
  computed: {
    providedMessage() {
      //使用  
      return this.message;
    }
  }
};
</script>

3.后代组件B中使用inject注入并使用数据

<!-- DescendantB.vue -->
<template>
  <div>
    <p>Descendant Component B</p>
    <p>{{ providedMessage }}</p>
  </div>
</template>

<script>
export default {
  //注入 message 信息
  inject: ['message'],
  computed: {
    providedMessage() {
      //使用  
      return this.message;
    }
  }
};
</script>

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-16 07:58:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-16 07:58:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-16 07:58:03       82 阅读
  4. Python语言-面向对象

    2024-05-16 07:58:03       91 阅读

热门阅读

  1. 服务器出现故障该怎么办?

    2024-05-16 07:58:03       37 阅读
  2. 三种方法进行跨服务器文件传输

    2024-05-16 07:58:03       32 阅读
  3. 用scp将文件夹从一个服务器备份到另一个服务器

    2024-05-16 07:58:03       31 阅读
  4. Selenium 异常类详解

    2024-05-16 07:58:03       31 阅读
  5. Node npm yarn全局安装与国内镜像切换

    2024-05-16 07:58:03       27 阅读
  6. Ace编辑器

    2024-05-16 07:58:03       33 阅读
  7. 如何用Python画正方形

    2024-05-16 07:58:03       31 阅读
  8. C++初探_STL特征的复杂度

    2024-05-16 07:58:03       32 阅读
  9. Python利用wkhtmltopdf将网页上的文章保存为PDF文件

    2024-05-16 07:58:03       31 阅读
  10. react:memo、useMemo、useCallback的区别

    2024-05-16 07:58:03       34 阅读
  11. sklearn机器学习编程练习大全(一)

    2024-05-16 07:58:03       31 阅读