有關微信小程式頁間的跳躍如何監聽事件詳解

巴扎黑
發布: 2018-05-15 15:49:42
原創
8128 人瀏覽過

在微信小程式的開發過程中,我們可定會遇到頁間互相跳轉的需求,那麼如何監聽頁面跳轉之間的事件呢?我們在之前的一篇文章:藝龍微信小程式框架元件研究(附原始碼)為例,來看看小程式在頁面之間相互跳轉時的事件機制。

我們知道小程式提供開啟新頁面、頁面重新導向、頁面返回、tabBar切換四個改變視圖的機制,託管了頁面的生命週期,並為應用程式提供了相應的生命週期事件,方便應用各階段的業務處理,但頁面之間相互跳轉並沒有相應的事件機制,例如——

#1、A頁面開啟二級頁B,B頁面做了一些操作,要通知A頁面做對應的處理。
2、從B頁面攜帶一些數據,回到A頁面

以上兩個場景很常見,歸結為頁面間如何方便的進行交互,當然我們可以透過頁面跳轉傳參或全域資料物件來達到目的,但是使用上有些束縛(轉換參數或維護全域物件)!

所以在elong小程式專案中採用事件機制來解決這個問題。我們重寫了navigateToAPI,A頁面呼叫該介面進行頁面跳轉後,方法返回給A頁面一個事件物件event,該物件可以註冊自訂事件,目標頁面(B頁面)可以按照業務需求觸發事件回應,同時將相關資料作為參數傳遞到監聽處callback。
A頁面



B頁面


#API


Event

部分程式碼如下:

[AppleScript] 純文字查看
複製程式碼

    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'
            });
        },
登入後複製

########## 開啟二級頁面效果圖— ############ ######

##

以上是有關微信小程式頁間的跳躍如何監聽事件詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板