在小程序开发中,页面导航是实现用户流畅交互体验的关键环节。今天,咱们就一起来深入学习小程序里通过声明式导航实现页面跳转、切换 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;扮演着至关重要的角色。它不…