91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue事件總線取消了嗎

發布時間:2022-12-29 10:02:07 來源:億速云 閱讀:138 作者:iii 欄目:web開發

今天小編給大家分享一下vue事件總線取消了嗎的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

vue3取消了全局事件總線,廢除原因是安全性低。全局事件總線是一個全局任意組件通信技術,即任意組件間的通信均可實現。在vue3中,如果想要使用全局事件總線,需要引入第三方庫mitt或tiny-emitter。

vue3取消了全局事件總線,原因是安全性低。

vue的全局事件總線

全局事件總線,是一個全局任意組件通信技術。

顧名思義,任意組件間通信,均可實現。

它通信是通過一個傀儡去實現的,一個所有組件均可訪問到的傀儡,vue中命名叫 $bus

在vue2中

我們可以直接在 入口文件 mian.js 中使用生命周期鉤子 beforecreated
直接創建 $bus

beforeCreate() {
	Vue.prototype.$bus = this
}

記得把鉤子寫在 掛載之前即可。

使用時:

  • 在需要接收數據的組件中使用 mounted鉤子綁定事件監聽

mounted() {
  this.$bus.$on('hello',(data) => {
    console.log(data);
  })
},

  • 在需要發送數據的組件中需要發送的操作中觸發該方法即可

methods: {
  sendStudentName(){
    this.$bus.$emit('hello',this.name)
  }
},

  • 還沒完,如果組件銷毀,記得解綁事件,在哪綁定就在哪解綁,使用beforeDestroy鉤子

beforeDestroy() {
  this.$bus.$off('hello')
},

在vue3

在vue3中,取消了全局事件總線,如果想要使用,我們需要引入第三方庫 mitttiny-emitter

1、安裝mitt庫

npm i mitt -s

2、在根目錄封裝一個 js 文件,以便組件中導入使用

文件起名最好見名知義 例如 eventBus.js

內容:

//導入
import mitt from 'mitt';
 //定義,定義也最好見名知義
const emitter = mitt();
 //暴露
export default emitter;

3、使用

1)相互通信的組件均需要導入js

import emitter from '../../eventBus'

2) 接收數據的組件 在setup()中綁定事件監聽

setup(){
  emitter.on('event',(info) => {
    ...
  })
  return{}
}

這里的箭頭函數,換成普通函數也可

3)發送數據的組件觸發即可傳遞數據

setup(){
	function send(info) {
		emitter.emit('event',info)
	)
	return{}
}

4)組件銷毀前,解綁事件,

onBeforeUnmount(()=>{
	emitter.off("event", onEvent);
})

如果使用普通函數,則把該函數也在第二個參數的位置,如果是箭頭函數,則不用寫。如上 onEvent

以上就是“vue事件總線取消了嗎”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

南靖县| 定远县| 英山县| 德格县| 犍为县| 贡嘎县| 工布江达县| 五峰| 西乡县| 青河县| 台州市| 嘉祥县| 庆元县| 佛山市| 通化市| 鄂州市| 白银市| 同江市| 延长县| 曲沃县| 夏津县| 渝北区| 兴仁县| 德昌县| 社会| 高雄市| 黄大仙区| 房产| 高清| 双鸭山市| 双城市| 漳浦县| 涿鹿县| 镇安县| 京山县| 奉贤区| 邯郸市| 陕西省| 莱阳市| 伊宁县| 通化县|