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

