小程序學習筆記:聲明式導航的多種玩法

在小程序開發中,頁面導航是實現用戶流暢交互體驗的關鍵環節。今天,咱們就一起來深入學習小程序里通過聲明式導航實現頁面跳轉、切換 tab 頁、后退等功能的技巧,還會附上詳細代碼示例,讓大家輕松掌握!

一、什么是頁面導航

頁面導航,簡單來說,就是實現頁面之間相互跳轉的技術。在瀏覽器中,我們常用 a 鏈接或者調用 JavaScript 的location.href API 來完成頁面跳轉。而在小程序里,實現頁面導航主要有兩種方式:聲明式導航和編程式導航。

聲明式導航,就是在頁面上聲明一個navigator導航組件,通過點擊這個組件來實現頁面跳轉。編程式導航則是調用小程序提供的導航 API 來實現跳轉。今天咱們重點探討聲明式導航的具體應用。

二、通過聲明式導航跳轉到 tab 頁面

(一)tab 頁面的概念

tab 頁面指的是被配置為 tab bar 的那些頁面。比如在當前項目中,配置了首頁、消息、聯系這三個頁面作為 tab 頁面。接下來,我們就看看如何從一個頁面跳轉到這些 tab 頁面。

(二)實現步驟及代碼示例

要通過聲明式導航跳轉到 tab 頁面,需要借助navigator組件,并指定url屬性和open-type屬性。url屬性表示要跳轉到的頁面地址,必須以斜線根路徑開頭;open-type屬性表示跳轉方式,若要跳轉到 tab bar 對應的頁面,其值必須等于switchTab。

假設我們要在首頁點擊一個鏈接跳轉到消息頁面,代碼如下:

<navigator url="/pages/message/message" open-type="switchTab">導航到消息頁面
</navigator>

在實際操作時,url路徑可以從app.json文件中查找對應頁面的路徑,然后手動在前面加上斜線。如果忘記聲明open-type屬性及其對應值,或者url地址不以斜線開頭,都無法成功跳轉。

三、通過聲明式導航跳轉到非 tab 頁面

(一)非 tab 頁面的定義

非 tab 頁面就是沒有被配置為 tab bar 的頁面。例如,我們在項目中新建一個info頁面,且不將其配置為 tab 頁面,那么它就是非 tab 頁面。

(二)實現方式及代碼演示

同樣使用navigator組件,指定url屬性和open-type屬性。url屬性依舊指定跳轉地址,以斜線開頭;open-type屬性的值要等于navigate。代碼如下:

<navigator url="/pages/info/info" open-type="navigate">導航到info頁面
</navigator>

在實際開發中,還有個小技巧:導航到非 tab 頁面時,open-type="navigate"這個屬性可以省略不寫,只指定url屬性也能正常導航到非 tab 頁面。

四、通過聲明式導航實現后退效果

(一)后退導航的屬性設置

如果希望后退到上一頁面或后退多個頁面,需要為navigator組件指定open-type屬性和delta屬性。open-type的值必須等于navigateBack,表示進行后退導航;delta屬性的值是一個整數,表示要后退的層級數 。
比如,在頁面上聲明一個返回上一頁的按鈕,代碼如下:

<navigator open-type="navigateBack" delta="1">返回上一頁
</navigator>
(二)簡化操作

如果只是后退到上一個頁面,delta屬性可以省略,因為其默認值為 1。只需要指定open-type="navigateBack",就能實現后退一個頁面的效果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86754.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86754.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86754.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux中《動/靜態庫原理》

目錄 目標文件ELF文件ELF從形成到加載輪廓ELF形成可執行readelf命令ELF可執行文件加載 理解連接與加載靜態鏈接ELF加載與進程地址空間虛擬地址/邏輯地址 重新理解進程虛擬地址空間 動態鏈接與動態庫加載進程如何看到動態庫進程間如何共享庫的動態鏈接動態鏈接到底是如何工作的&…

Android大圖加載優化:BitmapRegionDecoder深度解析與實戰

在移動端開發中&#xff0c;超大圖片加載一直是性能優化的難點。本文將深入剖析BitmapRegionDecoder原理&#xff0c;提供完整Kotlin實現方案&#xff0c;并分享性能調優技巧。 一、為什么需要大圖加載優化&#xff1f; 典型場景&#xff1a; 醫療影像&#xff1a;2000015000…

基于ApachePOI實現高德POI分類快速導入PostgreSQL數據庫實戰

目錄 前言 一、高德POI分類簡介 1、數據表格 2、分類結構 二、從Excel導入到Postgresql 1、Excel解析流程 2、Mybatis批量導入 3、數據入庫 三、總結 前言 在大數據與地理信息深度交融的當下&#xff0c;地理信息系統&#xff08;GIS&#xff09;的觸角已延伸至各個領域…

如何打造Apache Top-Level開源時序數據庫IoTDB

引言 數據與時間結合后&#xff0c;便擁有了生命。在金融、系統日志、工業產線和智能設備等領域&#xff0c;時序數據每毫秒都在不斷產生。管理這些海量時序數據需要專業的數據庫系統。時序數據庫產品正逐漸受到市場的關注&#xff0c;本文將分享如何通過開源的方式&#xff0…

高并發內存池實戰指南

項目源碼&#xff1a;https://gitee.com/kkkred/thread-caching-malloc 目錄 一、脫離new&#xff1a;高并發內存池如何替代傳統動態分配 1.1 new的痛點&#xff1a;碎片、延遲與鎖競爭 1.2 高并發內存池的替代方案&#xff1a;分層預分配無鎖管理 二、大內存&#xff08;…

基于springboot+vue的數字科技風險報告管理系統

開發語言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服務器&#xff1a;tomcat7數據庫&#xff1a;mysql 5.7數據庫工具&#xff1a;Navicat12開發軟件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系統展示 管理員登錄 管理…

實戰篇----利用 LangChain 和 BERT 用于命名實體識別-----完整代碼

上一篇文章講解了Langchain,實現一個簡單的demo,結合利用 LangChain 和 BERT 用于命名實體識別。 一、命名實體識別模型訓練(bert+CRF) bert作為我們的預訓練模型(用于將輸入文本轉換為特征向量),CRF作為我們的條件隨機場(將嵌入特征轉為標簽),既然要訓練,那么我們的損失函…

現代 C++ 容器深度解析及實踐

一、線性容器&#xff1a;std::array 與 std::forward_list 1. std::array&#xff1a;固定大小的高效容器 在傳統 C 中&#xff0c;數組與 vector 的抉擇常讓人糾結&#xff1a;數組缺乏安全檢查&#xff0c;vector 存在動態擴容開銷。C11 引入的std::array完美平衡了兩者優…

數據集|豬姿態檢測PigBehaviorRecognitionDataset

數據集|豬姿態檢測PigBehaviorRecognitionDataset 一、數據集介紹1.1 介紹1.2 用途1.3 數據集統計 二、樣本類別介紹1. Lying&#xff08;躺臥&#xff09;2. Sleeping&#xff08;睡眠&#xff09;3. Investigating&#xff08;探索&#xff09;4. Eating&#xff08;進食&…

Vue-13-前端框架Vue之應用基礎路由器的使用步驟

文章目錄 1 路由和路由器2 基本切換效果2.1 App.vue(根組件)2.2 components(子組件)2.2.1 Home.vue(首頁)2.2.2 News.vue(新聞)2.2.3 About.vue(關于)2.3 路由器2.3.1 router/index.ts2.3.2 main.ts2.4 效果展示2.5 程序流程3 筆記3.1 路由組件和一般組件3.1.1 Header.vue(一般…

GaussDB實例級自動備份策略:構建數據安全的“自動防護網”

GaussDB實例級自動備份策略&#xff1a;構建數據安全的“自動防護網” 在數字化轉型的浪潮中&#xff0c;數據庫作為企業核心數據的載體&#xff0c;其安全性與可恢復性直接關系到業務的連續性。對于分布式數據庫GaussDB而言&#xff0c;實例級自動備份策略是保障數據安全的關…

推薦幾本關于網絡安全的書

對于網絡安全從業者、相關專業學生以及對網絡安全感興趣的人士而言&#xff0c;掌握扎實的網絡安全知識和技能至關重要。以下推薦的幾本網絡安全書籍&#xff0c;涵蓋了網絡安全領域的多個重要方面&#xff0c;是學習和研究網絡安全的優質參考資料。 1、攻擊網絡協議&#xff…

工業4.0浪潮下PROFIBUS DP轉ETHERNET/IP在軋鋼廠的創新實踐

在工業自動化4.0推動制造業向智能化升級的背景下&#xff0c;軋鋼廠生產對設備互聯與數據協同提出更高要求。PROFIBUS DP與ETHERNET/IP協議的特性差異&#xff0c;制約著西門子PLC與工業測距儀等設備的高效協作。通過協議轉換技術實現兩者互通&#xff0c;為軋鋼生產線注入智能…

從0開始學習R語言--Day31--概率圖模型

在探究變量之間的相關性時&#xff0c;由于并不是每次分析數據時所用的樣本集都能囊括所有的情況&#xff0c;所以單純從樣本集去下判斷會有武斷的嫌疑&#xff1b;同樣的&#xff0c;我們有時候也想要在數據樣本不夠全面時就能對結果有個大概的了解。 例如醫生在給患者做診斷…

微信小程序進度條progress支持漸變色

微信小程序自帶進度條progress支持漸變色代碼 .wx-progress-inner-bar {border-radius: 8rpx !important;background: linear-gradient(90deg, #FFD26E 8%, #ED0700 100%) !important; }<view class"progress-box"><progress percent"80" back…

Linux內核網絡協議棧深度解析:面向連接的INET套接字實現

深入剖析Linux內核中TCP連接管理的核心機制,揭示高效網絡通信的實現奧秘。 一、源地址匹配:連接建立的第一道關卡 在TCP連接建立過程中,內核需要驗證源地址是否匹配。inet_rcv_saddr_equal()函數是實現這一功能的核心,它巧妙地處理了IPv4/IPv6雙棧環境: bool inet_rcv_s…

Vue 項目中 Excel 導入導出功能筆記

功能概述 該代碼實現了 Vue 項目中 Excel 文件的三大核心功能&#xff1a; Excel 導入&#xff1a;上傳文件并解析數據&#xff0c;刷新表格展示。模板下載&#xff1a;獲取并下載標準 Excel 模板文件。數據導出&#xff1a;將表格數據按多級表頭結構導出為 Excel 文件。 一…

71. 簡化路徑 —day94

前言&#xff1a; 作者&#xff1a;神的孩子在歌唱 一個算法小菜雞 大家好&#xff0c;我叫智 71. 簡化路徑 給你一個字符串 path &#xff0c;表示指向某一文件或目錄的 Unix 風格 絕對路徑 &#xff08;以 / 開頭&#xff09;&#xff0c;請你將其轉化為 更加簡潔的規范路徑…

Linux系統編程 | 互斥鎖

1、什么是互斥鎖 如果信號量的值最多為 1&#xff0c;那實際上相當于一個共享資源在任意時刻最多只能有一個線程在訪問&#xff0c;這樣的邏輯被稱為“互斥”。這時&#xff0c;有一種更加方便和語義更加準確的工具來滿足這種邏輯&#xff0c;他就是互斥鎖。 “鎖”是一種非常形…

數據文件寫入技術詳解:從CSV到Excel的ETL流程優化

文章大綱&#xff1a; 引言&#xff1a;數據文件寫入在ETL流程中的重要性 在現代數據處理中&#xff0c;ETL&#xff08;提取、轉換、加載&#xff09;流程是數據分析和業務決策的核心環節&#xff0c;而數據文件寫入作為ETL的最后一步&#xff0c;扮演著至關重要的角色。它不…