uniapp頁面?zhèn)鲄⒌娜N方式實(shí)例總結(jié)
子頁面返回父頁面?zhèn)鲄?,使用uni.$emit和uni.$on頁面通訊
一,uni.$emit(eventName,OBJECT)
觸發(fā)全局的自定義事件,附加參數(shù)都會(huì)傳給監(jiān)聽回調(diào)。
eventName為事件名,object為觸發(fā)事件附加參數(shù)。
代碼如下:
uni.$emit('gotoNext',{msg:'刷新頁面'})
二, uni.$on(eventName,Callback)
監(jiān)聽全局自定義事件,事件由uni.$emit()觸發(fā),回調(diào)函數(shù)會(huì)接收所有傳入的數(shù)。
eventName為事件名,Callback為回調(diào)函數(shù)。
代碼如下:
uni.$on('goto',function(data){console.log('監(jiān)聽到事件來自goto,所帶參數(shù)msg 為:' +data.msg)})
作用:
開發(fā)中對(duì)觸發(fā)頁面動(dòng)態(tài)更新將非常又效果。
比如說移動(dòng)項(xiàng)目通過自己編寫的組件(tabbar)進(jìn)行tabar跳轉(zhuǎn),這個(gè)時(shí)候要是某應(yīng)該頁面微信支付成功了,需要返回tabbar頁面,你會(huì)發(fā)現(xiàn),它不會(huì)像其他普通的uni頁面,(onshow生命周期)會(huì)動(dòng)態(tài)刷新,影響用戶體驗(yàn)。所以這個(gè)方法很有效,只需要在組件中寫入uni.emit(update.masq:'頁面刷新')
然后在頁面使用uni.on('update',function(data){ console.log('監(jiān)聽到事件來自 update ,攜帶參數(shù) msg 為:' + data.msg); })
接收,將函數(shù)寫入即可。實(shí)際應(yīng)用例子如下:
onShow() { switch (this.Tab){ case 'demo': uni.$emit('goto',{msg:'頁面更新'}); break; } },
text頁面
created() { uni.$on('goto', (res) => { this.list() console.log(res, '更新'); }) },
三,uni.$off([eventName, callback])移除全局自定義事件監(jiān)聽器。
針對(duì)于頁面?zhèn)鲄⒄?qǐng)直接使用Vue的全局變量更方便 ,因?yàn)閡ni-app框架的uni.$emit()和$on() 雖然使用了定時(shí)器能接收到參數(shù),但是不知道為什么第一次總是接收不到導(dǎo)致很多為!但是使用Vue的全局變量能搞定一切!
最后一個(gè)小舉例:
//從A跳轉(zhuǎn)B頁面,B頁面返回A頁面時(shí)傳參 //B頁面 uni.$emit("targetEvent",{shiftOverId:that.shiftOverId,productOrderId:that.productOrderId }) uni.navigateBack(); //A頁面 onLoad: function (e) { uni.$on("targetEvent",(e)=>{ this.preId = JSON.parse(e.shiftOverId) this.productOrderId = JSON.parse(e.productOrderId) uni.$off('targetEvent') }) },
總結(jié)
到此這篇關(guān)于uniapp頁面?zhèn)鲄⒌娜N方式的文章就介紹到這了,更多相關(guān)uniapp頁面?zhèn)鲄?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript高級(jí)教程之如何玩轉(zhuǎn)箭頭函數(shù)
箭頭函數(shù)是在es6中添加的一種規(guī)范,箭頭函數(shù)相當(dāng)于匿名函數(shù),簡(jiǎn)化了函數(shù)的定義,下面這篇文章主要給大家介紹了關(guān)于JavaScript高級(jí)教程之如何玩轉(zhuǎn)箭頭函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11JavaScript獲取當(dāng)前url根目錄(路徑)
本文主要介紹JavaScript獲取當(dāng)前url根目錄的方法,比較實(shí)用,需要的朋友可以參考一下。2016-06-06微信小程序swiper使用網(wǎng)絡(luò)圖片不顯示問題解決
這篇文章主要介紹了微信小程序swiper使用網(wǎng)絡(luò)圖片不顯示問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12JavaScript模擬重力狀態(tài)下拋物運(yùn)動(dòng)的方法
這篇文章主要介紹了JavaScript模擬重力狀態(tài)下拋物運(yùn)動(dòng)的方法,實(shí)例分析了javascript操作dom元素模擬運(yùn)動(dòng)的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03JavaScript正則表達(dá)式和級(jí)聯(lián)效果
正則表達(dá)式(regular expression)是一種字符串匹配的模式,用來檢查一個(gè)字符串中是否包含指定模式的字符串。下面通過本文給大家分享JavaScript_正則表達(dá)式和級(jí)聯(lián)效果,感興趣的朋友一起看看吧2017-09-09用javascript判斷IE版本號(hào)簡(jiǎn)單實(shí)用且向后兼容
項(xiàng)目中需要判斷IE版本號(hào),又因?yàn)?jQuery 2.0 去除了對(duì)瀏覽器版本號(hào)的判斷于是就看到一老外寫的一段代碼,下面與大家分享下2013-09-09JS window對(duì)象簡(jiǎn)單操作完整示例
這篇文章主要介紹了JS window對(duì)象簡(jiǎn)單操作,結(jié)合完整實(shí)例形式分析了JavaScript Window對(duì)象各種常見提示框、彈出窗口及時(shí)間相關(guān)操作技巧,需要的朋友可以參考下2020-01-01