react中元件之間的資料傳送,交流,最簡單,通用,好用的方法.
該方法最大的方便就是: 模組a 發生一個事件 ,之後可以主動 觸發模組b中事件改變模組b的state和props等,簡直不要太方便.
如果你在糾結react模組之間怎麼實現傳值的話,不用再找其他了,就是這個方法了親測好用,很通用.
很詳細用法見http://taobaofed.org/blog/2016/11/17/react-components-communication/ 中 兄弟元件間通訊 部分
以下是經本人理解後的核心部分,方便上手。(簡單demo如下)
模組 a 中寫 var data = "hello,money"; eventProxy.trigger("test", data);
模組 b 中寫 eventProxy.on("test", (data)=>{ console.log(data) });
只要模組a中的語句每次被觸發執行時後都會觸發模組b中語句列印出傳遞過來的data值.
- on、one:on 與 one 函式用於訂閱者監聽相應的事件,並將事件響應時的函式作為引數,on 與 one 的唯一區別就是,使用 one 進行訂閱的函式,只會觸發一次,而 使用 on 進行訂閱的函式,每次事件發生相應時都會被觸發。
- trigger:trigger 用於釋出者釋出事件,將除第一引數(事件名)的其他引數,作為新的引數,觸發使用 one 與 on 進行訂閱的函式。
- off:用於解除所有訂閱了某個事件的所有函式。
---------下面的程式碼可以單獨放在一個檔案中,用script引入,或important入即可使用eventProxy--------------
// eventProxy.js ;const eventProxy = { onObj: {}, oneObj: {}, on: function(key, fn) { if(this.onObj[key] === undefined) { this.onObj[key] = []; } this.onObj[key].push(fn); }, one: function(key, fn) { if(this.oneObj[key] === undefined) { this.oneObj[key] = []; } this.oneObj[key].push(fn); }, off: function(key) { this.onObj[key] = []; this.oneObj[key] = []; }, trigger: function() { let key, args; if(arguments.length == 0) { return false; } key = arguments[0]; args = [].concat(Array.prototype.slice.call(arguments, 1)); if(this.onObj[key] !== undefined && this.onObj[key].length > 0) { for(let i in this.onObj[key]) { this.onObj[key][i].apply(null, args); } } if(this.oneObj[key] !== undefined && this.oneObj[key].length > 0) { for(let i in this.oneObj[key]) { this.oneObj[key][i].apply(null, args); this.oneObj[key][i] = undefined; } this.oneObj[key] = []; } } }; |
參見:http://taobaofed.org/blog/2016/11/17/react-components-communication/
相關文章
- vue元件之間的資料傳遞Vue元件
- 修改SQL Server資料庫表的建立時間最簡單最直接有效的方法SQLServer資料庫
- React - 元件之間的通訊React元件
- 微信小程式父子元件之間的資料傳遞微信小程式元件
- EXCEL資料上傳到SQL SERVER中的簡單實現方法ExcelSQLServer
- React之元件(component)之間的通訊React元件
- Koa中更方便簡單傳送響應的方式
- iOS-Widgets小元件-Today Extension和主App之間的簡單資料共享iOS元件APP
- react-fetch資料傳送請求React
- MySQL傳輸表空間的簡單使用方法MySql
- PHP 傳送GET 和 POST資料的方法分析PHP
- Vue元件之間的資料傳遞(通訊、互動)詳解Vue元件
- React中元件之間通訊的方式React元件
- 探索 React 元件之間的生命週期React元件
- Vue - 元件之間的傳值方式Vue元件
- jmeter之傳送json資料的post請求JMeterJSON
- 深入解析React資料傳遞之元件內部通訊React元件
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- Vue元件間資料傳遞Vue元件
- Vue元件間傳遞資料Vue元件
- 兄弟元件之間資訊傳遞元件
- SAP UI5 Web Component裡最簡單的React列表控制元件的用法UIWebReact控制元件
- vue父子元件之間傳值以及方法呼叫Vue元件
- React圖片上傳元件react-fileupload的使用方法React元件
- React中useEffect的簡單使用React
- 父子元件之間的傳值問題元件
- react之元件資料掛在方式React元件
- 用 React 做出好用的 Switch 元件React元件
- 利用ASP傳送和接收XML資料的處理方法XML
- SQL server資料庫高可用日誌傳送的方法SQLServer資料庫
- Vue 子元件和父元件傳遞資料與方法的例子Vue元件
- 使用全域性 bus 在 Vue 的兄弟元件中簡單傳值(以及 this 重定向的 5 種方法)Vue元件
- 萬億級資料的方法,簡單易懂!
- 資料夾如何加密碼最簡單的方法 電腦怎麼給資料夾加密加密密碼
- Vue之元件間傳值Vue元件
- 簡單好用的資料庫管理:DBeaverEE mac啟用版資料庫Mac
- 不同順序InBoundHandler之間的資料傳遞
- 新手必看!最簡單的MySQL資料庫詳解MySql資料庫