React - PubSubJS 實現兄弟組件之間傳遞資料
React - PubSubJS 實現兄弟組件之間傳遞資料
前言
元件間如果要傳遞資料,都會傳遞給共同的組父元件,進行傳遞,而使用 PubSubJS,可以實現『兄弟』元件間的資料傳遞!
為什麼要使用 PubSubJS 套件
React 兄弟組件間想要傳遞資料,必須透過共同的父組件
PubSubJS 解決溝通橋梁的問題,可以直接子組件對話
尤其子組件越多層沒套件會更麻煩,有套件以後維護也更方便
如何使用 PubSubJS 套件
安裝 PubSubJS 套件(NPM 為例)
- 終端機輸入
npm i pubsub-js
引用並使用 PubSubJS 套件
在需要用的組件引入
import PubSub from 'pubsub-js'
官方給的簡單案例
負責接收資料的組件
1
2
3
4
5
6
7
8
9
10// 創造一個函式
const mySubscriber = function (msg, data) {
console.log( msg, data );
};
// 新增訂閱消息(消息關鍵字, 函式),可以搭配生命週期
const token = PubSub.subscribe('MY TOPIC', mySubscriber);
// 取消訂閱消息,搭配生命週期取消
PubSub.unsubscribe(mySubscriber);負責傳遞資料的組件
1
2// 發布消息(消息關鍵字, 要傳遞的資料)
PubSub.publish('MY TOPIC', 'hello world!');