vue组件间的通信之pubsub-js

本文介绍使用发布订阅的方式进行vue组件间的通信

我认为这种方式比较自由, 不存在组件间的关系问题

1. 首先安装pubsub-js

npm install --save pubsub-js

2. 订阅方组件

  import PubSub from ‘pubsub-js‘
    mounted(){ // 执行异常代码
      // 订阅消息
      PubSub.subscribe(‘deleteTodo‘,(msg,index)=>{
        this.deleteTodo(index)  // 调用deleteTodo方法执行真正的业务逻辑
      });
    },

3. 发布方组件

<script>
  import PubSub from ‘pubsub-js‘
  export default{
    methods: {
      handlerEnter(isEnter){
        if (isEnter) {
          this.bgColor = ‘gray‘;
          this.isShow = true;
        } else {
          this.bgColor = ‘white‘;
          this.isShow = false;
        }
      },
      deleteItem(){
        // 表示从this对象中取出todo,index,deleteTodo三个对象
        const {todo, index, deleteTodo} = this
        if (window.confirm(`确认删除${todo.title}吗?`)) {
          // 发布消息
          PubSub.publish(‘deleteTodo‘, index);  //deleteTodo一定要与订阅方名称一样,index是通信的具体数据

        }

      }
    }
  }
</script>

  

  

原文地址:https://www.cnblogs.com/z-qinfeng/p/12387268.html

时间: 2025-01-17 22:41:31

vue组件间的通信之pubsub-js的相关文章

vue 组件间的通信

(1)props:用于父组件向子组件传递消息 使用方法: 在父组件中,使用子组件时,<Child v-bind:data="data"/>,通过v-bind把子组件需要的数据传递给子组件: 在子组件中通过props来接受传过来的数据,常用写法:props:['data',......]/props:{data:dataType,.....} 举例: (2)自定义事件:用于子组件向父组件传递消息 使用方法: 在父组件中,对子组件的标签绑定一个自定义的事件监听,<Chil

Vue组件间的通信--父传子

属性传值,子组件props 接收 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="app"> <parent></parent> </div> <script src="j

vue组件之间的通信

vue组件间的通信有父--->子.子--->父.非父子之间的通信 虽然我们稍微复杂的项目都用vuex来管理了,但是还是想写一篇关于有父--->子.子--->父.非父子 之间通信的文章.下面通过代码来讲述 父--->子组件间的通信 父级页面: <template> <div id="app"> <Header :parentMsg='parentMsg' > </Header> </div> <

第四节:Vue表单标签和组件的基本用法,父子组件间的通信

vue表单标签和组件的基本用法,父子组件间的通信,直接看例子吧. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="vue.js"></script> </head> <body> <div id="app"&

vue组件间通信六种方式(完整版)

vue组件间通信六种方式(完整版) 前言 组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.一般来说,组件可以有以下几种关系: 如上图所示,A 和 B.B 和 C.B 和 D 都是父子关系,C 和 D 是兄弟关系,A 和 C 是隔代关系(可能隔多代). 针对不同的使用场景,如何选择行之有效的通信方式?这是我们所要探讨的主题.本文总结了vue组件间通信的几种方式,如props.$emit/$on.vuex.$parent / $chil

Vue 组件间通信有哪几种方式?

父子通信 (1)父组件向子组件传值props <button-counter :title="send"></button-counter> Vue.component('button-counter', { props: ['title'], data: function() { return { count: 0 } }, 子向父通信 (2)子组件向父组件传值  $emit('enlarge-text',10)   on 子组件通过自定义事件向父组件传递数据

vue组件中的通信

一.组件间的关系 1.父子关系 2.兄弟关系 3.隔代关系 二.组件间的通信方式 1.props 2.$emit/$on 3.VUEX 4.$parent/$children 5.$attrs/$listeners 6.provide/inject 三.通信方式举例 新建了一个过程,采用webpack来管理项目.  方法一:props / $emit 1.props---父组件向子组件传值 子组件:sub1.vue 父组件:app.vue 父组件通过props向下传递给子组件.注:组件中的数据共

(尚033)Vue_案例_slot(组件间的通信4:slot)

1.组件间的通信4:slot(slot:插槽,就是一个占位) slot用于标签反复使用很多次 1.1理解 此方式用于父组件向子组件传递标签数据, 其他为数据通信 外面组件向里面组件传递标签进去,直接拿我的标签显示数据就行 假如我传递的是数据,我还得映射成标签,才能显示数据 1.2子组件Child.vue 1.3父组件:Parent.vue 注意底下这两个<div>与上面的<slot>是对应关系 ============================================

vue组件间通信子与父

二.组件间通信(子组件传值给父组件) 通过事件的方式来完成数据的传输. ①在父组件中 定义一个方法,用来接收子组件所通过事件传来的值 methods:{ recvMsg:function(msg){ //参数msg就是子组件通过事件出来的数据 }} ②绑定事件处理函数事件一般情况 都是自定义事件 <child-component @myEvent="recvMsg"></child-component> ③在子组件触发事件 事件名,值this.$emit('my