- 背景。無意間開發uniapp程序用到了頁面跳轉數據傳遞的兩種方式。但各用于什么場景,有什么區別記錄一下。大模型給的內容較多,貼出一些結論。
- eventChannel文檔鏈接
- uni.$emit文檔鏈接
-
頁面跳轉而非全局事件通知,優先選擇
eventChanel
的方式。- 首先它可以方便的傳遞json數據,而無需通過向url后跟隨參數的方式進行加碼轉碼,非常方便
- 另外可以雙向通信。當使用navigateBack回到頁面的時候還可以發消息通知原頁面。
- 而uni.$on的方式只能用于監聽不能夠傳遞。
- 另外這兩種方式在頁面布局上也不同。chanel方式捆綁著navigateTo進行消息發送和事件定義監聽。而 o n 的方式是通過全局 ‘ u n i . on的方式是通過全局`uni. on的方式是通過全局‘uni.on`聲明
-
eventChannel方式
-
注冊。接收調用方傳遞的參數
- 發送。打開頁面成功后,前提是被調用的頁面已成功通過onLoad方法注冊了相同的事件
moreDoctor
。就通過emit發送數據,被調用頁面接收處理。
uni.$on的方式
- 總結。
- 翻閱uniapp官網查看文檔有時隨所可以用,但用的不對,需要改正。
- 發現有相同功能點。意識到區別,避免濫用。