一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

小程序框架頁(yè)面棧設(shè)計(jì)案例解析

電子工程師 ? 來(lái)源:博客園 ? 作者: 姜友瑤 ? 2020-11-04 13:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

剛開(kāi)始用小程序的時(shí)候沒(méi)怎么在意頁(yè)面的跳轉(zhuǎn),也沒(méi)仔細(xì)看文檔中說(shuō)的頁(yè)面棧的內(nèi)容。只要能跳轉(zhuǎn)就行,wx.navigateTo,wx.redirectTo 這些方法一頓亂用。最后在做一個(gè)5層頁(yè)面的時(shí)候跳懵了。各種重復(fù)跳頁(yè),怎么改都不好使,于是安心下來(lái)仔細(xì)看看API,發(fā)現(xiàn)這個(gè)路由還是有學(xué)問(wèn)的。因此分享一下,希望對(duì)做小程序的網(wǎng)友也有一定的幫助。

頁(yè)面棧

首先我們要理解在小程序中頁(yè)面的路由是小程序框架本身控制的我們不要去手動(dòng)管理, 小程序框架通過(guò)一個(gè)頁(yè)面棧的設(shè)計(jì)來(lái)管理所有的界面,為了便于理解你可以看一下示意圖。

?

如圖所示小程序的頁(yè)面棧最大能存放5個(gè)頁(yè)面,當(dāng)頁(yè)面棧中的頁(yè)面等于5時(shí),在使用navigateTo這種方式是不能再跳頁(yè)的。

下面我們分析一下頁(yè)面棧的變化過(guò)程,從分析中,我們需要明白的一個(gè)重要問(wèn)題就是,當(dāng)客戶(hù)按返回按鈕的時(shí)候究竟會(huì)跳轉(zhuǎn)到那個(gè)界面,這是我們分析頁(yè)面棧變化的的意義。

首先我們?cè)陧?yè)面中調(diào)用兩次navigateTO,頁(yè)面棧情況如下

?

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

?

根據(jù)棧的情況,我們可以分析出。如果使用 wx.redirectTo跳轉(zhuǎn)到pageD頁(yè)面,然后在回退的時(shí)候是不能再次回退到pageC的,而會(huì)直接回退到pageB。

通過(guò)上面對(duì)頁(yè)面棧的分析,我們可以看到棧的變化是會(huì)影響客戶(hù)回退頁(yè)面的順序的,所以根據(jù)自己的需要合理的使用不同的跳轉(zhuǎn)方法是非常重要的。如果使用不當(dāng)就會(huì)導(dǎo)致跳轉(zhuǎn)混亂讓人摸不清頭腦

下面分析一種調(diào)轉(zhuǎn)重復(fù)頁(yè)面的情況

如果我們的pageB頁(yè)面是一個(gè)數(shù)據(jù)列表頁(yè)面,比如商品列表,pageC是一個(gè)商品的編輯界面,一般我們會(huì)通過(guò)pageB然后進(jìn)如pageC對(duì)商品進(jìn)行修改,修改后返回pageB。這是很常見(jiàn)的一個(gè)場(chǎng)景,但是如果使用不當(dāng)機(jī)會(huì)出現(xiàn)如下情況

?

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

路由方法與頁(yè)面棧變化對(duì)應(yīng)關(guān)系


特別注意:

navigateTo,redirectTo只能打開(kāi)非 tabBar 頁(yè)面。

switchTab只能打開(kāi) tabBar 頁(yè)面。

reLaunch可以打開(kāi)任意頁(yè)面。

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

調(diào)用頁(yè)面路由帶的參數(shù)可以在目標(biāo)頁(yè)面的onLoad中獲取。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1624

    瀏覽量

    64080
  • 路由
    +關(guān)注

    關(guān)注

    0

    文章

    280

    瀏覽量

    42495
  • 小程序
    +關(guān)注

    關(guān)注

    1

    文章

    243

    瀏覽量

    12926
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    深入淺出解析低功耗藍(lán)牙協(xié)議

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

    讓您的應(yīng)用為16KB頁(yè)面大小的設(shè)備做好準(zhǔn)備

    (提升幅度為 5-10%)。我們?cè)凇稙?Android 添加 16 KB 頁(yè)面大小》一文中提供了深入的技術(shù)解析,并重點(diǎn)展示了性能改進(jìn)。
    的頭像 發(fā)表于 01-07 09:26 ?1042次閱讀

    鴻蒙原生頁(yè)面高性能解決方案上線(xiàn)OpenHarmony社區(qū) 助力打造高性能原生應(yīng)用

    。 HMrouter:簡(jiǎn)化頁(yè)面跳轉(zhuǎn)邏輯HMrouter是HarmonyOS NEXT出色的路由框架解決方案,專(zhuān)注于優(yōu)化應(yīng)用內(nèi)原生頁(yè)面跳轉(zhuǎn)邏輯,它封裝系統(tǒng) Navigation,集成
    發(fā)表于 01-02 18:00

    HarmonyOS Next 應(yīng)用元服務(wù)開(kāi)發(fā)-應(yīng)用接續(xù)動(dòng)態(tài)配置遷移按需遷移頁(yè)面

    按需遷移頁(yè)面,支持應(yīng)用動(dòng)態(tài)選擇是否進(jìn)行頁(yè)面恢復(fù)(默認(rèn)進(jìn)行頁(yè)面信息恢復(fù))。如果應(yīng)用不想使用系
    發(fā)表于 12-26 15:23

    AUTOSAR通信協(xié)議解析 如何實(shí)現(xiàn)AUTOSAR通信

    通信協(xié)議是一個(gè)復(fù)雜的系統(tǒng),它涵蓋了多種通信方式和模塊,以實(shí)現(xiàn)車(chē)內(nèi)ECU之間的高效、可靠的數(shù)據(jù)交換。以下是對(duì)AUTOSAR通信協(xié)議的解析及實(shí)現(xiàn)AUTOSAR通信的方法: 一、AUTOSAR通信協(xié)議解析
    的頭像 發(fā)表于 12-17 14:54 ?2863次閱讀

    SSM框架的源碼解析與理解

    MVC模式,使得開(kāi)發(fā)Web應(yīng)用程序變得更加高效和簡(jiǎn)單。 1. Spring框架 基本功能: Spring是一個(gè)開(kāi)源的Java平臺(tái),它提供了全面的基礎(chǔ)設(shè)施支持,以便開(kāi)發(fā)Java應(yīng)用程序。Spring
    的頭像 發(fā)表于 12-17 09:20 ?995次閱讀

    SSM框架在Java開(kāi)發(fā)中的應(yīng)用 如何使用SSM進(jìn)行web開(kāi)發(fā)

    SSM框架,即Spring、SpringMVC和MyBatis的整合,是Java Web開(kāi)發(fā)中常用的技術(shù)。它通過(guò)分層架構(gòu),實(shí)現(xiàn)了視圖、控制、業(yè)務(wù)邏輯和數(shù)據(jù)訪(fǎng)問(wèn)的分離,提高了代碼的可維護(hù)性和可擴(kuò)展性
    的頭像 發(fā)表于 12-16 17:28 ?1605次閱讀

    HarmonyOS Web頁(yè)面加載的原理和優(yōu)化方法

    在移動(dòng)互聯(lián)網(wǎng)時(shí)代,應(yīng)用的頁(yè)面渲染速度對(duì)于用戶(hù)體驗(yàn)至關(guān)重要。相對(duì)于原生頁(yè)面,Web頁(yè)面的性能存在多方面的技術(shù)挑戰(zhàn)。本文以HarmonyOS的ArkWeb組件為基礎(chǔ),介紹了Web頁(yè)面加載中
    的頭像 發(fā)表于 12-05 15:14 ?1085次閱讀
    HarmonyOS Web<b class='flag-5'>頁(yè)面</b>加載的原理和優(yōu)化方法

    深度解析研華全式AI產(chǎn)品布局

    在人工智能邁向邊緣智能化的浪潮中,研華科技通過(guò)“Edge AI+生態(tài)協(xié)同”戰(zhàn)略推動(dòng)AIoT 2.0時(shí)代的產(chǎn)業(yè)落地。本文專(zhuān)訪(fǎng)研華科技產(chǎn)品總監(jiān)邱柏儒,深度解析研華全式AI產(chǎn)品布局、差異化技術(shù)積累與生態(tài)共創(chuàng)實(shí)踐。
    的頭像 發(fā)表于 12-05 09:51 ?1054次閱讀

    JavaWeb框架比較

    JavaWeb框架為開(kāi)發(fā)人員提供了構(gòu)建Web應(yīng)用程序所需的基礎(chǔ)設(shè)施和組件,每種框架都有其獨(dú)特的特點(diǎn)和適用場(chǎng)景。以下是對(duì)幾種主流JavaWeb框架的比較: Spring MVC 優(yōu)點(diǎn)
    的頭像 發(fā)表于 11-25 09:14 ?693次閱讀

    簡(jiǎn)述大前端技術(shù)的渲染原理

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

    Linux網(wǎng)絡(luò)協(xié)議的實(shí)現(xiàn)

    網(wǎng)絡(luò)協(xié)議是操作系統(tǒng)核心的一個(gè)重要組成部分,負(fù)責(zé)管理網(wǎng)絡(luò)通信中的數(shù)據(jù)包處理。在 Linux 操作系統(tǒng)中,網(wǎng)絡(luò)協(xié)議(Network Stack)負(fù)責(zé)實(shí)現(xiàn) TCP/IP 協(xié)議簇,處理應(yīng)用程序發(fā)起的網(wǎng)絡(luò)
    的頭像 發(fā)表于 09-10 09:51 ?714次閱讀
    Linux網(wǎng)絡(luò)協(xié)議<b class='flag-5'>棧</b>的實(shí)現(xiàn)

    串口服務(wù)器和TCP/IP協(xié)議是什么關(guān)系

    串口服務(wù)器與TCP/IP協(xié)議之間存在著緊密而復(fù)雜的關(guān)系。這種關(guān)系主要體現(xiàn)在串口服務(wù)器如何利用TCP/IP協(xié)議來(lái)實(shí)現(xiàn)串口設(shè)備與網(wǎng)絡(luò)之間的數(shù)據(jù)通信。以下是對(duì)這種關(guān)系的詳細(xì)解析。
    的頭像 發(fā)表于 08-25 17:35 ?2137次閱讀

    labview CAN DBC加載解析程序

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

    Linux內(nèi)核中的頁(yè)面分配機(jī)制

    Linux內(nèi)核中是如何分配出頁(yè)面的,如果我們站在CPU的角度去看這個(gè)問(wèn)題,CPU能分配出來(lái)的頁(yè)面是以物理頁(yè)面為單位的。也就是我們計(jì)算機(jī)中常講的分頁(yè)機(jī)制。本文就看下Linux內(nèi)核是如何管理,釋放和分配這些物理
    的頭像 發(fā)表于 08-07 15:51 ?650次閱讀
    Linux內(nèi)核中的<b class='flag-5'>頁(yè)面</b>分配機(jī)制