vue3 非父子组件通信

Posted 嘴巴嘟嘟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue3 非父子组件通信相关的知识,希望对你有一定的参考价值。

业务场景是,不是父子组件实现通信
文件目录

第一种方法

App.vue

<template>
  <div>
    <Home></Home>
    <button @click="addName">增加名字</button>
  </div>
</template>

<script>
import Home from "./Home.vue";
import { computed } from "vue";
export default {
  name: "App",
  components: {
    Home,
  },
  provide() {
    return {
      name: "张三",
      age: 23,
      length: computed(() => this.names.length),
    };
  },
  data() {
    return {
      names: ["张三", "李四", "王五"],
    };
  },
  methods: {
    addName() {
      this.names.push("fuck you");
      console.log("hhhh");
    },
  },
};
</script>

<style scoped>
</style>

Home.vue

<template>
  <div>
    <div>我是home</div>
    <home-content></home-content>
  </div>
</template>

<script>
import HomeContent from "./HomeContent.vue";
export default {
  name: "Home",
  components: {
    HomeContent,
  },
};
</script>

<style scoped>
</style>

HomeContent.vue

<template>
  <div>HomeContent:{{ name }}--{{ age }}---{{ length }}</div>
</template>

<script>
export default {
  inject: ["name", "age", "length"],
};
</script>

<style lang="scss" scoped>
</style>

以上是关于vue3 非父子组件通信的主要内容,如果未能解决你的问题,请参考以下文章

Vue3 父子组件通信

Vue3父子组件间传参通信

VUE3+TS(父子兄弟组件通信)

vue3父子通信

Vue3 组件通信学习笔记

12.组件化开发2-非父子组件之间通信-祖先和后代之间的通信