Vue中消息订阅与发布(pubsub) + nextTick

27 阅读1分钟

Vue中消息订阅与发布(pubsub)

  1. 一种组件间通信的方式,适用于任意组件间通信。

  2. 使用步骤:

    1)安装pubs: npm i pubsub-js

    1. 引入: import pubs from ‘pubsub-js’

    2. 接收数据:A组件想接收数据,则在A组件中订阅消息,订阅的回调留在A组件自身。

      methods(){
              demo(data){ ….. }
      }
      
      ………
      
      mounted(){
              this.pid = pubs.subscribe(‘xxx’,this.demo). //订阅消息
      }
      
  1. 提供数据: pubs.publish(‘xxx’,数据)

  2. 最好在beforeDestroy 钩子中,用 PubSub.unsubscribe(pid) 去取消订阅。

nextTick :

1. 语法:this.$nextTick(回调函数) 

2. 作用:在下一次DOM 更新结束后执行其指定的回调。

3. 什么时候用:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行。