在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

小程序框架頁面棧設計案例解析

電子工程師 ? 來源:博客園 ? 作者: 姜友瑤 ? 2020-11-04 13:55 ? 次閱讀

剛開始用小程序的時候沒怎么在意頁面的跳轉,也沒仔細看文檔中說的頁面棧的內容。只要能跳轉就行,wx.navigateTo,wx.redirectTo 這些方法一頓亂用。最后在做一個5層頁面的時候跳懵了。各種重復跳頁,怎么改都不好使,于是安心下來仔細看看API,發現這個路由還是有學問的。因此分享一下,希望對做小程序的網友也有一定的幫助。

頁面棧

首先我們要理解在小程序中頁面的路由是小程序框架本身控制的我們不要去手動管理, 小程序框架通過一個頁面棧的設計來管理所有的界面,為了便于理解你可以看一下示意圖。

?

如圖所示小程序的頁面棧最大能存放5個頁面,當頁面棧中的頁面等于5時,在使用navigateTo這種方式是不能再跳頁的。

下面我們分析一下頁面棧的變化過程,從分析中,我們需要明白的一個重要問題就是,當客戶按返回按鈕的時候究竟會跳轉到那個界面,這是我們分析頁面棧變化的的意義。

首先我們在頁面中調用兩次navigateTO,頁面棧情況如下

?

這時顯示的界面是pageC ,如果客戶在此時返回則會一切正常,回退的第一個界面是pageB,然后是pageA。但是如果在pageC 界面調用 wx.redirectTo({url:'pageD'}) 則情況就會不一樣看,我們先看一下跳轉到pageD后頁面棧的情況如何。

?

根據棧的情況,我們可以分析出。如果使用 wx.redirectTo跳轉到pageD頁面,然后在回退的時候是不能再次回退到pageC的,而會直接回退到pageB。

通過上面對頁面棧的分析,我們可以看到棧的變化是會影響客戶回退頁面的順序的,所以根據自己的需要合理的使用不同的跳轉方法是非常重要的。如果使用不當就會導致跳轉混亂讓人摸不清頭腦

下面分析一種調轉重復頁面的情況

如果我們的pageB頁面是一個數據列表頁面,比如商品列表,pageC是一個商品的編輯界面,一般我們會通過pageB然后進如pageC對商品進行修改,修改后返回pageB。這是很常見的一個場景,但是如果使用不當機會出現如下情況

?

如圖所示棧中出現了兩個相同的pageB界面,這個時候如果用戶按退出鍵就會出現一個頁面出現2次的情況,而且有一個界面的數據也是舊的數據。因此為了避免這個問題,我們應該在 PageC 頁面避免將 PageB重復壓入棧中,所以在pageC頁面 使用wx.navigateBack({delta:1}); 進行頁面回退。而數據刷新的問題則在頁面的onShow函數中進行即可。

路由方法與頁面棧變化對應關系


特別注意:

navigateTo,redirectTo只能打開非 tabBar 頁面。

switchTab只能打開 tabBar 頁面。

reLaunch可以打開任意頁面。

頁面底部的 tabBar 由頁面決定,即只要是定義為 tabBar 的頁面,底部都有 tabBar。

調用頁面路由帶的參數可以在目標頁面的onLoad中獲取。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1566

    瀏覽量

    63669
  • 路由
    +關注

    關注

    0

    文章

    279

    瀏覽量

    42388
  • 小程序
    +關注

    關注

    1

    文章

    243

    瀏覽量

    12834
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    深入淺出解析低功耗藍牙協議

    Bluetooth LE協議為什么要分層?怎么理解Bluetooth LE“連接”?如果Bluetooth LE協議只有ATT層沒有GATT層會發生什么? 一、協議框架 一般而言,我們把某個
    的頭像 發表于 04-09 14:49 ?437次閱讀
    深入淺出<b class='flag-5'>解析</b>低功耗藍牙協議<b class='flag-5'>棧</b>

    讓您的應用為16KB頁面大小的設備做好準備

    (提升幅度為 5-10%)。我們在《為 Android 添加 16 KB 頁面大小》一文中提供了深入的技術解析,并重點展示了性能改進。
    的頭像 發表于 01-07 09:26 ?827次閱讀

    鴻蒙原生頁面高性能解決方案上線OpenHarmony社區 助力打造高性能原生應用

    。 HMrouter:簡化頁面跳轉邏輯HMrouter是HarmonyOS NEXT出色的路由框架解決方案,專注于優化應用內原生頁面跳轉邏輯,它封裝系統 Navigation,集成
    發表于 01-02 18:00

    HarmonyOS Next 應用元服務開發-應用接續動態配置遷移按需遷移頁面

    按需遷移頁面,支持應用動態選擇是否進行頁面恢復(默認進行頁面信息恢復)。如果應用不想使用系
    發表于 12-26 15:23

    AUTOSAR通信協議解析 如何實現AUTOSAR通信

    通信協議是一個復雜的系統,它涵蓋了多種通信方式和模塊,以實現車內ECU之間的高效、可靠的數據交換。以下是對AUTOSAR通信協議的解析及實現AUTOSAR通信的方法: 一、AUTOSAR通信協議解析
    的頭像 發表于 12-17 14:54 ?2595次閱讀

    SSM框架的源碼解析與理解

    MVC模式,使得開發Web應用程序變得更加高效和簡單。 1. Spring框架 基本功能: Spring是一個開源的Java平臺,它提供了全面的基礎設施支持,以便開發Java應用程序。Spring
    的頭像 發表于 12-17 09:20 ?920次閱讀

    SSM框架在Java開發中的應用 如何使用SSM進行web開發

    SSM框架,即Spring、SpringMVC和MyBatis的整合,是Java Web開發中常用的技術。它通過分層架構,實現了視圖、控制、業務邏輯和數據訪問的分離,提高了代碼的可維護性和可擴展性
    的頭像 發表于 12-16 17:28 ?1507次閱讀

    HarmonyOS Web頁面加載的原理和優化方法

    在移動互聯網時代,應用的頁面渲染速度對于用戶體驗至關重要。相對于原生頁面,Web頁面的性能存在多方面的技術挑戰。本文以HarmonyOS的ArkWeb組件為基礎,介紹了Web頁面加載中
    的頭像 發表于 12-05 15:14 ?990次閱讀
    HarmonyOS Web<b class='flag-5'>頁面</b>加載的原理和優化方法

    深度解析研華全式AI產品布局

    在人工智能邁向邊緣智能化的浪潮中,研華科技通過“Edge AI+生態協同”戰略推動AIoT 2.0時代的產業落地。本文專訪研華科技產品總監邱柏儒,深度解析研華全式AI產品布局、差異化技術積累與生態共創實踐。
    的頭像 發表于 12-05 09:51 ?971次閱讀

    JavaWeb框架比較

    JavaWeb框架為開發人員提供了構建Web應用程序所需的基礎設施和組件,每種框架都有其獨特的特點和適用場景。以下是對幾種主流JavaWeb框架的比較: Spring MVC 優點
    的頭像 發表于 11-25 09:14 ?636次閱讀

    簡述大前端技術的渲染原理

    應用開發:Android、iOS、鴻蒙(HarmonyOS)等; ?Web前端框架:Vue、React、Angular等; ?小程序開發:微信小程序、京東小程序、支付寶小
    的頭像 發表于 11-07 10:11 ?604次閱讀

    Linux網絡協議的實現

    網絡協議是操作系統核心的一個重要組成部分,負責管理網絡通信中的數據包處理。在 Linux 操作系統中,網絡協議(Network Stack)負責實現 TCP/IP 協議簇,處理應用程序發起的網絡
    的頭像 發表于 09-10 09:51 ?632次閱讀
    Linux網絡協議<b class='flag-5'>棧</b>的實現

    串口服務器和TCP/IP協議是什么關系

    串口服務器與TCP/IP協議之間存在著緊密而復雜的關系。這種關系主要體現在串口服務器如何利用TCP/IP協議來實現串口設備與網絡之間的數據通信。以下是對這種關系的詳細解析
    的頭像 發表于 08-25 17:35 ?2056次閱讀

    labview CAN DBC加載解析程序

    labview CAN DBC加載解析程序
    發表于 08-18 11:42

    Linux內核中的頁面分配機制

    Linux內核中是如何分配出頁面的,如果我們站在CPU的角度去看這個問題,CPU能分配出來的頁面是以物理頁面為單位的。也就是我們計算機中常講的分頁機制。本文就看下Linux內核是如何管理,釋放和分配這些物理
    的頭像 發表于 08-07 15:51 ?598次閱讀
    Linux內核中的<b class='flag-5'>頁面</b>分配機制
    主站蜘蛛池模板: 好爽好深太大了再快一点 | 色花堂国产精品首页第一页 | 亚洲字幕久久 | 天天看片国产 | 欧洲性开放大片免费观看视频 | 午夜免费观看 | 68日本xxxxxxxxx18能看的 | 羞羞色院91精品网站 | 激情在线网站 | 玖玖在线 | 国产成人精品日本亚洲网站 | 天天谢天天干 | 久久久综合色 | 日韩一级欧美一级一级国产 | 综合激情网站 | 亚洲 欧洲 日韩 | 国产精品嫩草影院人体模特 | 久久99国产亚洲高清观看首页 | 黄视频免费网站 | 男人j进女人j免费视频视频 | 免费视频不卡 | 视频在线观看免费 | 免费色站 | 91福利专区 | 午夜国产福利 | 黄色aaaa| 性欧美极品另类 | 天天天天天天操 | www.午夜视频 | 成片免费的禁v影片 | 天天干夜夜操 | 国产丝袜va丝袜老师 | 欧美视频在线观在线看 | 欧美色88| 久久精品久久久久 | 国产精品主播在线观看 | 性做久久久久久久免费观看 | 色老头·com 色老头成人免费综合视频 色老头久久久久 | 亚洲成a人片7777 | 午夜h| 欧美日韩在线成人免费 |