最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3如何使用eventBus訂閱發(fā)布模式

 更新時間:2022年09月01日 09:46:43   作者:別拿bug搞偷襲  
EventBus是一種發(fā)布/訂閱事件設計模式的實踐,下面這篇文章主要給大家介紹了關于vue3如何使用eventBus訂閱發(fā)布模式的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

Ⅰ. 什么是eventBus?

通俗的講,就是在任意一個組件,想把消息(參數(shù)) -> 傳遞到任意一個組件 ,并執(zhí)行一定邏輯。

Ⅱ. vue3 如何使用

eventBus vue3中沒有了,eventBus,所以我們要自己寫,但是非常簡單。

步驟一 (eventBus 容器)

在src目錄,創(chuàng)建個bus文件夾,存放 自己寫的 bus.js ;

編寫 bus.js => 在class 原型上綁定三個 (訂閱,取消訂閱,發(fā)布)函數(shù);

// bus.js
class Bus {
	constructor() {
		this.list = {};  // 收集訂閱
	}
	// 訂閱
	$on(name, fn) {
		this.list[name] = this.list[name] || [];
		this.list[name].push(fn);
	}
	// 發(fā)布
	$emit(name, data) {
		if (this.list[name]) {
      		this.list[name].forEach((fn) => {	fn(data);   });
    	}
	}
	// 取消訂閱
	$off(name) {
		if (this.list[name]) {
			delete this.list[name];
		}
	}
}
export default new Bus;

訂閱者(on),講函數(shù)放入 list 中 => 等待發(fā)布者(emit),傳參去調用;

由于函數(shù)是對象,內存地址未發(fā)生變化,還在在訂閱者(on)組件中執(zhí)行。

步驟二 ( 訂閱者 )

在 comA.vue 中訂閱;

訂閱只是 存放函數(shù),并未執(zhí)行,等發(fā)布后才會執(zhí)行;

<template>
  <div>
 	{{ name }} --- {{ age }}
  </div>
</template>
<script>
import {ref , onUnmounted} from 'vue';
import Bus from '../bus/bus.js';
export default {
  setup() {
       const name = '張三';
       const age = ref(18)
       Bus.$on('addAge',({ num })=>{    age.value = num;    })
       
       //組件卸載時,取消訂閱
	   onUnmounted( () => { Bus.$off('addAge') } )
 	}
 }
</script>

在離開組件(onUnmounted)時 ,將注冊進去的 ,訂閱函數(shù)的數(shù)組刪除,避免存放越來越多。

步驟三 ( 發(fā)布者 )

在 comB.vue 中發(fā)布;

調用訂閱 并傳參;

<template>
    <button @click="fabu">發(fā)布</button>
</template>
<script>
import Bus from '../eventBus/Bus.js'
export default {
  setup() {
	 function fabu(){
 		Bus.$emit('addAge',{age:'19'});
	 }
   }
 }
</script>

發(fā)布后,在訂閱者的組件就會執(zhí)行,注意對應的 訂閱和發(fā)布的name 要相同。

總結

到此這篇關于vue3如何使用eventBus訂閱發(fā)布模式的文章就介紹到這了,更多相關vue3 eventBus訂閱發(fā)布模式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue3使用v-html實現(xiàn)文本關鍵詞變色處理

    Vue3使用v-html實現(xiàn)文本關鍵詞變色處理

    遍歷文本內容,找到關鍵詞,并使用某種方法更改其字體樣式,經(jīng)過搜尋資料決定采用v-html實現(xiàn),但是v-html本身并不安全,有安全性風險且影響性能,所以謹慎使用,本文給大家介紹了Vue3使用v-html實現(xiàn)文本關鍵詞變色處理,需要的朋友可以參考下
    2024-06-06
  • VueJS 組件參數(shù)名命名與組件屬性轉化問題

    VueJS 組件參數(shù)名命名與組件屬性轉化問題

    這篇文章主要介紹了VueJS 組件參數(shù)名命名與組件屬性轉化問題,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-12-12
  • Vue驗證碼60秒倒計時功能簡單實例代碼

    Vue驗證碼60秒倒計時功能簡單實例代碼

    這篇文章主要介紹了Vue驗證碼60秒倒計時功能簡單實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • VUE的history模式下除了index外其他路由404報錯解決辦法

    VUE的history模式下除了index外其他路由404報錯解決辦法

    在本篇文章里小編給大家分享的是關于VUE的history模式下除了index外其他路由404報錯解決辦法,對此有需要的朋友們可以學習下。
    2019-08-08
  • vue3實現(xiàn)按鈕權限管理的項目實踐

    vue3實現(xiàn)按鈕權限管理的項目實踐

    在做后臺管理系統(tǒng)時,經(jīng)常會有權限管理的功能,本文主要介紹了vue3實現(xiàn)按鈕權限管理的項目實踐,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 詳解vue-cli 腳手架項目-package.json

    詳解vue-cli 腳手架項目-package.json

    本篇文章主要介紹了詳解vue-cli 腳手架項目-package.json,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • ant design vue導航菜單與路由配置操作

    ant design vue導航菜單與路由配置操作

    這篇文章主要介紹了ant design vue導航菜單與路由配置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue路由組件按需加載的幾種方法小結

    vue路由組件按需加載的幾種方法小結

    這篇文章主要介紹了vue路由組件按需加載的幾種方法小結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue3-HTTP請求方式

    vue3-HTTP請求方式

    這篇文章主要介紹了vue3-HTTP請求方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue.js通過自定義指令實現(xiàn)數(shù)據(jù)拉取更新的實現(xiàn)方法

    vue.js通過自定義指令實現(xiàn)數(shù)據(jù)拉取更新的實現(xiàn)方法

    數(shù)據(jù)拉取更新這個功能相信大家基本都見過,但是如果要做起來卻不止如何做起,所以這篇文章給大家分享了vue.js通過自定義指令實現(xiàn)的方法,閱讀本文需要對vue有一定理解,有需要的朋友們下面來一起看看吧。
    2016-10-10

最新評論

朝阳市| 镇宁| 新余市| 太仓市| 和政县| 永城市| 游戏| 于田县| 福建省| 偃师市| 新和县| 三台县| 永顺县| 广昌县| 宜都市| 时尚| 牙克石市| 乌恰县| 邹平县| 孟州市| 于都县| 互助| 宁强县| 上林县| 民权县| 巨鹿县| 郁南县| 渝中区| 台中市| 时尚| 淮阳县| 建湖县| 合江县| 潞城市| 枣庄市| 错那县| 杭州市| 沙田区| 蓝山县| 长子县| 凌源市|