首页 > 其他 > 详细

681 vue3非父子组件的通信:pProvide、Inject,Mitt,,,,,,,,,,

时间:2021-06-10 13:57:44      阅读:63      评论:0      收藏:0      [点我收藏+]

非父子组件的通信

技术分享图片


Provide和Inject

技术分享图片


Provide和Inject基本使用

技术分享图片


Provide和Inject函数的写法

技术分享图片


处理响应式数据

技术分享图片


A pp.vue

<template>
  <div>
    <home></home>
    <button @click="addName">+name</button>
  </div>
</template>

<script>
  import Home from "./Home.vue";
  import { computed } from "vue";

  export default {
    components: {
      Home,
    },
    // 为了使用this。,写成函数
    provide() {
      return {
        name: "why",
        age: 18,
        // this.names.length:一次性赋值,不会改变
        // computed:变成响应式
        length: computed(() => this.names.length), // ref对象 .value
      };
    },
    data() {
      return {
        names: ["abc", "cba", "nba"],
      };
    },
    methods: {
      addName() {
        this.names.push("why");
        console.log(this.names);
      },
    },
  };
</script>

<style scoped></style>

Home.vue

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

<script>
  import HomeContent from "./HomeContent.vue";

  export default {
    components: {
      HomeContent,
    },
  };
</script>

<style scoped></style>

HomeContent.vue

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

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

<style scoped></style>

全局事件总线mitt库

技术分享图片


使用事件总线工具

技术分享图片


Mitt的事件取消

技术分享图片































681 vue3非父子组件的通信:pProvide、Inject,Mitt,,,,,,,,,,

原文:https://www.cnblogs.com/jianjie/p/14870458.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!