摘要: 在微信小程序的開(kāi)發(fā)過(guò)程中,我們可定會(huì)遇到頁(yè)面間相互跳轉(zhuǎn)的需求,那么如何監(jiān)聽(tīng)頁(yè)面跳轉(zhuǎn)之間的事件呢?我們?cè)谥暗囊黄恼拢核圐埼⑿判〕绦蚩蚣芙M件研究(附源碼)為例,來(lái)看一看小程序在頁(yè)面之間相互跳轉(zhuǎn)時(shí)的事件 ...
在微信小程序的開(kāi)發(fā)過(guò)程中,我們可定會(huì)遇到頁(yè)面間相互跳轉(zhuǎn)的需求,那么如何監(jiān)聽(tīng)頁(yè)面跳轉(zhuǎn)之間的事件呢?我們?cè)谥暗囊黄恼拢?span style="font-size:12px">藝龍微信小程序框架組件研究(附源碼)為例,來(lái)看一看小程序在頁(yè)面之間相互跳轉(zhuǎn)時(shí)的事件機(jī)制。愛(ài)掏網(wǎng) - it200.com 我們知道小程序提供打開(kāi)新頁(yè)面、頁(yè)面重定向、頁(yè)面返回、tabBar切換四種改變視圖的機(jī)制,托管了頁(yè)面的生命周期,并為應(yīng)用提供了相應(yīng)的生命周期事件,方便應(yīng)用各階段的業(yè)務(wù)處理,但頁(yè)面之間相互跳轉(zhuǎn)并沒(méi)有相應(yīng)的事件機(jī)制,例如——
以上兩種場(chǎng)景很常見(jiàn),歸結(jié)為頁(yè)面間如何方便的進(jìn)行交互,當(dāng)然我們可以通過(guò)頁(yè)面跳轉(zhuǎn)傳參或全局?jǐn)?shù)據(jù)對(duì)象來(lái)達(dá)到目的,但是使用上有些束縛(轉(zhuǎn)換參數(shù)或維護(hù)全局對(duì)象)! 所以在elong小程序項(xiàng)目中采用事件機(jī)制解決這一問(wèn)題。愛(ài)掏網(wǎng) - it200.com我們重寫(xiě)了navigateToAPI,A頁(yè)面調(diào)用該接口進(jìn)行頁(yè)面跳轉(zhuǎn)后,方法返回給A頁(yè)面一個(gè)事件對(duì)象 event,該對(duì)象可以注冊(cè)自定義事件,目標(biāo)頁(yè)面(B頁(yè)面)可以按照業(yè)務(wù)需求觸發(fā)事件響應(yīng),同時(shí)將相關(guān)數(shù)據(jù)作為參數(shù)傳遞到監(jiān)聽(tīng)處callback。愛(ài)掏網(wǎng) - it200.com
API Event 部分代碼如下: Page({ data: { userInfo: {} }, navigateToHttp: function () { var event = api.Navigate.go({ url: '../http/index', params: { name: 'billy' } }); event.on("listok", function (params) { console.log(params) }); }, navigateToExternalComponent: function () { var event = api.Navigate.go({ url: '../externalComponent/index' }); }, navigateToInternalComponent: function () { var event = api.Navigate.go({ url: '../internalComponent/index' }); }, navigateToPartComponent: function (params) { var event = api.Navigate.go({ url: '../partComponent/index' }); },登錄后復(fù)制 打開(kāi)二級(jí)頁(yè)面效果圖—— |
以上就是微信小程序頁(yè)面間跳轉(zhuǎn)如何監(jiān)聽(tīng)事件的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注愛(ài)掏網(wǎng) - it200.com其它相關(guān)文章!