博客详情

vue中消息订阅与发布PubSub (原创)

作者: 朝如青丝暮成雪
发布时间:2020-04-12 19:59:16  文章分类:vue学习   阅读(950)  评论(0)

1、npm install pubsub-js --save 

2、PubSub 是一个全局对象,import后可在任何地方都可以直接拿到这个对象。

如图:




App.vue


<template>
  <div id="app">

    <!--  使用pubsub-js 发布订阅组件
     cnpm install pubsub-js --save
     import PubSub from 'pubsub-js'
    -->
   <me href="https://www.baidu.com" title="百度一下" content="百度" />
    <me href="https://www.jd.com" title="京东" content="京东商城"   />
    <me href="https://www.taobao.com" title="淘宝" content="淘宝网" />
  </div>
</template>
<script>

import me from './components/Menu';
import PubSub from 'pubsub-js';
export default {
  name: 'App',
  components: {
    me
  },
 
  mounted(){
    //PubSub 是一个全局对象,import后可在任何地方都可以直接拿到这个对象
    //App 消息订阅,相对于之前的事件绑定,消息主题名称为dd。处理函数中第一个形参t表示主题名称,第二个形参data才是真正的数据
    PubSub.subscribe('dd',(t,data)=>{
      console.log(data);
    });
  }

}
</script>

<style scoped>

</style>


Menu.vue


<template>
  <div>
     <p>
       菜单项:
     <a :href="href" :title='title' target="_blank">{{content}}</a>
       <button @click="doClick">按钮</button>

     </p>
  </div>
</template>

<script>
  import PubSub from 'pubsub-js';

export default {
  name: 'mu',
  data () {
    return {

    }
  },
  methods:{
    doClick(){
       console.log('do click');
       
      //向主题'dd'发送消息
      PubSub.publish('dd','hahahaha');

    }
  },
  //props表示可以从外部(父组件)传入的属性,
  // props中定义的属性可以作为元素自身的data和method属性来使用

  props:['href','title','content']
}
</script>

<style scoped>

</style>





关键字:  vue  PubSub
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号