美文网首页
vue组件之间的交互之消息订阅与发布组件Pubsub

vue组件之间的交互之消息订阅与发布组件Pubsub

作者: yxCassiel | 来源:发表于2021-01-29 11:24 被阅读0次

前言

vue组件之间的关系有父子组件、同级组件以及孙父子三级关系、还有更复杂的四级、五级关系,那他们之间的数据以及方法如何传递,也就是父子组件、同级组件、孙子组件等如何调用各自的变量、方法呢?

正文

前面博主已经讲了同组件和父子组件的交互,那如果两个没有任何关系的组件或者更复杂的孙与子的三级组件、四级组件之间怎么交互?

这时再用前面所说的方法已经做不到了或者说很难实现了
这时就要用消息订阅与发布组件Pubsub了,他可以在任意组件之间实现交互

步骤

1.安装PubSub

首先在终端使用一下指令安装PubSub

npm install --save pubsub-js

安装成功就能在这里看到pubsub-js


在这里插入图片描述

2.引入组件

在要使用的组件中引入pubsub-js,这个不能全局引入只能哪个组件中使用就在哪个组件中引入


在这里插入图片描述

3.消息订阅

在被调用的组件中使用 PubSub.subscribe(name,function)订阅消息

被调用组件

<template>
  <div id="app">
    <PubSubDemo></PubSubDemo>
  </div>
</template>

<script>
  import PubSubDemo from './components/PubSubDemo.vue'//子组件
  import PubSub from 'pubsub-js'//引入PubSub
export default {
  name: 'App',
  components:{
    PubSubDemo  //映射组件
  },
  methods:{
    say(msg){
      alert(msg);
    }
  },
  mounted() {
    //消息订阅,相当于前面的绑定事件监听
    PubSub.subscribe('answer',(msg,data)=>{
      this.say(data);
    })
  }

}
</script>

<style>
</style>

4.发布

在调用组件使用 PubSub.publish(name,data);发布消息

<template>
  <div>
    <button @click="answer">这个世界谁最帅啊?</button>
  </div>
</template>

<script>
  import PubSub from 'pubsub-js'//引入PubSub
  export default{
    name:'PubSubDemo',
    methods:{
      answer(){
        //发布
        PubSub.publish('answer','博主最帅');
      }
    }
  }
</script>

<style>
</style>

运行的效果图

在这里插入图片描述

相关文章

  • vue组件之间的交互之消息订阅与发布组件Pubsub

    前言 vue组件之间的关系有父子组件、同级组件以及孙父子三级关系、还有更复杂的四级、五级关系,那他们之间的数据以及...

  • 消息订阅与发布

    消息订阅与发布(pubsub) 1、一种组件间通信的方式,适用于任意组件间通信 2、使用步骤: ...

  • vue-消息订阅与发布

    消息订阅与发布 这第三方库,可以让组件之间相互通信 安装如下: 需要订阅和发布的组件导入这个包 shool.vue...

  • 12-消息订阅与发布

    1. 定义 消息订阅与发布是一种组件间通信的方法。适用于任意组件。pubsub 是由两个单词组成:publish ...

  • pubsub.js消息的发布订阅

    pubsub.js消息的发布订阅 组件间数据的传递方式props,一层一层传递消息的发布订阅,当嵌套层数比较多,可...

  • React的组件通信

    组件之间进行通信的情况: 父组件向子组件通信 子组件向父组件通信 兄弟组件之间通信 发布者-订阅者模式 一、父组件...

  • React-组件通信方式总结

    组件间的关系 父子组件:props兄弟组件(非嵌套组件):消息订阅-发布、集中式管理、events包祖孙组件(跨级...

  • vue组件嵌套(模态框)

    在vue中父组件向自子组件传递props; 子组件向父组件传递属性是用$emit(发布订阅); 实例基本逻辑:点击...

  • Vue组件通信

    父组件传值子组件 子组件传值父组件 非父子组件通信 发布订阅模式 / 总线模式 我们使用一个空的Vue实例作为总线...

  • vue组件(子传父,父传子案例)

    在vue中父组件向自子组件传递props,子组件向父组件传递属性是用$emit(发布订阅) 下面是一个模态框示例,...

网友评论

      本文标题:vue组件之间的交互之消息订阅与发布组件Pubsub

      本文链接:https://www.haomeiwen.com/subject/llrqtltx.html