欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue之bus總線簡(jiǎn)單使用講解

 更新時(shí)間:2021年09月13日 14:40:45   作者:牛先森家的牛奶  
這篇文章主要介紹了vue之bus總線簡(jiǎn)單使用講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

vue之bus總線的簡(jiǎn)單使用

場(chǎng)景描述:

A組件中包括B,C組件,而B組件中包括D組件,這時(shí)如果D組件想要在A組件中觸發(fā)C組件的方法怎么辦呢?

當(dāng)然方案是有的,用狀態(tài)管理vuex可以,用$emit傳遞也可以,但是我想試著用的是bus總線的方式;

如下:

D組件中觸發(fā)bus的emit ,然后在A組件中用bus總線的on來觸發(fā)方法;

D組件中

dataLoad(){
   console.log('加載完觸發(fā)事件');
   this.$bus.$emit('itemDataLoad') 
   // this.$bus.$emit('事件名稱', 參數(shù)) // 第二個(gè)可以為參數(shù)
},

A組件中

 mounted() {
    // 監(jiān)聽item中數(shù)據(jù)加載完
    this.$bus.$on('itemDataLoad', () => {
      console.log('數(shù)據(jù)加載完');
    })
    // this.$bus.$on('事件名稱', 回調(diào)函數(shù)(參數(shù)))
  },

當(dāng)然在A組件中通過 this.$refs 的方式就可以觸發(fā)C組件中的事件等

還有一步驟是 $bus 默認(rèn)是不存在的啊,打印試試this.$bus為undefined??;

別急,在main.js中加上$bus;

// bus總線 vue實(shí)例
Vue.prototype.$bus = new Vue()

當(dāng)然可以在生命周期中移除bus總線;

this.$bus.$off();

記錄封裝的防抖函數(shù)

// 防抖函數(shù)
  debounce: function (fun, delay) {
    let timer = null
    // 接收調(diào)用函數(shù)時(shí)傳入的參數(shù)的值 ...args 可多個(gè)
    return function (...args) {
      if (tiemr) return
      timer = setTimeout(() => {
        fun.apply(this, args)
      }, delay);
    }
  }

const refresh = debounce(xxx, 500)

refresh('參數(shù)1', '參數(shù)2', '參數(shù)3')

到此這篇關(guān)于vue之bus總線簡(jiǎn)單使用講解的文章就介紹到這了,更多相關(guān)vue之bus總線簡(jiǎn)單使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論