微信小程序开发学习之页面导航(声明式导航和编程式导航)

微信小程序之页面导航(声明式导航和编程式导航)

    • 1.0 页面导航
    • 1.1. 声明式导航
      • 1.1.1. 导航到tabBar页面
      • 1.1.2. 导航到非tabBar页面
      • 1.1.3. 后退导航
    • 1.2. 编程式导航
      • 1.2.1. 导航到tabBar页面
      • 1.2.2. 导航到非tabBar页面
      • 1.2.3. 后退导航
    • 1.3. 导航传参
      • 1.3.1. 声明式导航传参
      • 1.3.2. 编程式导航传参
    • 1.4. 获取导航传递的参数

1.0 页面导航

页面导航指的是页面之间的相互跳转。

小程序中实现页面导航的两种方式:

  1. 声明式导航
    ● 在页面上声明一个 navigator 导航组件
    ● 通过点击 navigator 组件来实现页面的跳转
  2. 编程式导航
    ● 调用小程序的导航API,实现页面的跳转

1.1. 声明式导航

1.1.1. 导航到tabBar页面

tabBar 页面指的是被配置为 tabBar 的页面。
在使用 组件跳转到指定的 tabBar 页面时,需要指定 url 属性和 open-type 属性,url为页面的跳转地址,open-type 必须为 switchTab。

<navigator url="/pages/home/home" open-type="switchTab">
前往首页
</navigator>

1.1.2. 导航到非tabBar页面

非 tabBar 页面指的是没有被配置为 tabBar 的页面。
同样在使用 navigator 组件跳转到非tabBar页面时,需要指定其 url 和 open-type 属性,url为页面的跳转地址,open-type 必须为 navigate。

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

tips:跳转到非tabBar页面时,open-type="navigate" 可以省略。

1.1.3. 后退导航

如果要后退到上一页面或多级页面,则需要指定 open-type 属性和 delta 属性。
open-type 的值必须为 navigateBack ,表示要进行后退导航,delta的值必须为数字,表示后退的层级。

<navigtor open-type="navigateBack" delta='1'>返回上一页</navigtor>

tips:为了简便,如果只是后退到上一页面,则可以省略 delta 属性,因为其默认值就是 1。

1.2. 编程式导航

1.2.1. 导航到tabBar页面

导航到tabBar页面,使用wx.switchTab(Object object)方法,Object 参数对象的属性如下:

属性类型是否必选说明
urlstring需要跳转的 tabBar 页面的路径,路径后不能带参数
successfunction否 接口调用成功的回调函数
fail function接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

其中url为必填项,指明你要跳转的页面
例如:点击一个按钮跳转到首页
xx.wxml部分

<button bindtap="btnGoHome">跳转到首页按钮</button>

xx.js部分

btnGoHome(){
    wx.switchTab({
      url: '/pages/home/home',
    })
},

1.2.2. 导航到非tabBar页面

导航到非tabBar页面,使用wx.navigateTo(Object object)方法即可,其Object对象的参数与上面的switchTab一样。
我们只需要在函数中指明url地址即可。
页面部分 xx.wxml

<button bindtap="btnGoInfo">跳转到info页按钮</button>

js部分 xx.js

btnGoInfo(){
    wx.navigateTo({
      url: '/pages/info/info',
    })
},

1.2.3. 后退导航

**后退导航使用 wx.navigateBack(Object object),**其中Object 对象的参数属性如下:

属性类型默认值是否必选说明
deltanumber1返回的页面数,如果 delta 大于现有页面数,则返回到首页
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

xx.wxml

<button bindtap="btnGoBack">返回到上一页按钮</button>

xx.js

btnGoBack(){
  // 默认情况下 delta属性值 为 1,不指定也可以
  wx.navigateBack()
},

1.3. 导航传参

导航传参其实就是在url上面拼接参数, 参数与路径之间使用 ? 分隔 ,参数键与参数值用 = 相连 ,不同参数用 & 分隔。

1.3.1. 声明式导航传参

使用navigator组件传递参数,直接在其url上面拼接参数即可,例如

<navigator url="/pages/info/info?name='zhangsan'&age=20">
声明式导航传参
</navigator>

页面参数 :name=‘zhangsan’&age=20
在这里插入图片描述

1.3.2. 编程式导航传参

编程式导航传参也是一个道理,我就拿一个wx.switchTab()来举例,其余也都是一样的

<button bindtap="btnPassParams">编程式导航传参按钮</button>
btnPassParams() {
    wx.navigateTo({
        url: '/pages/info/info?name=lisi&age=21',
    })
},

页面参数:name=lisi&age=21
在这里插入图片描述

1.4. 获取导航传递的参数

通过声明式导航传参或编程式导航传参所携带的参数,可以直接在 onLoad 事件中直接获取到。
这里的话我直接写接收端的onload方法,然后输出一下options.

onLoad(options) {
    console.log(options)
},

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/37246.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开发工具篇第25讲:阿里云MFA绑定Chrome浏览器Authenticator插件

开发工具篇第25讲&#xff1a;阿里云MFA绑定Chrome浏览器Authenticator插件 本文是开发工具篇第25讲&#xff0c;登录阿里云旗下产品时&#xff0c;需要使用mfa登录&#xff0c;每次如果要用手机看mfa码很麻烦&#xff0c; Chrome浏览器提供了一个快捷的登录方法&#xff0c;可…

Mac上提取应用APP的LOGO

1、找到想提取LOGO的应用&#xff0c;右键「显示包内容」 2、 双击【Contents】文件夹&#xff0c;再双击【Resources】文件夹 3、双击图标打开&#xff0c;选择最清晰的一帧&#xff0c;右键【导出为】 4、选择保存位置&#xff0c;格式注意选择常见格式&#xff0c;如png

通过git管理远程gitee仓库(push、pull)

通过git管理远程gitee仓库&#xff08;push、pull&#xff09; Git:是一种分布式版本控制系统&#xff0c;用于跟踪和管理软件开发项目的源代码和文件。它可以记录文件的修改历史&#xff0c;允许多人协同工作&#xff0c;并提供了撤销更改、分支管理、合并代码等功能。 Git最初…

一、对象的概念(2)

本章概要 复用继承 “是一个”与“像是一个”的关系 多态 复用 一个类经创建和测试后&#xff0c;理应是可复用的。然而很多时候&#xff0c;由于程序员没有足够的编程经验和远见&#xff0c;我们的代码复用性并不强。 代码和设计方案的复用性是面向对象程序设计的优点之一…

Spring Boot 中的 @Query 注解是什么,原理,如何使用

Spring Boot 中的 Query 注解是什么&#xff0c;原理&#xff0c;如何使用 在 Spring Boot 中&#xff0c;Query 注解是一个非常常用的注解&#xff0c;用于定义自定义查询语句。本文将介绍 Query 注解的作用、原理和使用方法。 1. Query 注解的作用 在 Spring Boot 中&#…

Linux——进程信号的发送

目录 一.信号发送的概念 首先来讲几个发送术语&#xff1a; 它有三种情况&#xff1a; 注意&#xff1a; 二.信号在内核中的表示示意图 三.信号捕捉 所以总结一下&#xff1a; 此时&#xff0c;会出现这样一个疑问&#xff1a;操作系统是如何得知现在被执行的进程是用户态…

【Spring Cloud Alibaba Seata 处理分布式事务】——每天一点小知识

&#x1f4a7; S p r i n g C l o u d A l i b a b a S e a t a 处理分布式事务 \color{#FF1493}{Spring Cloud Alibaba Seata 处理分布式事务} SpringCloudAlibabaSeata处理分布式事务&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f98…

SpringCloud(4) Eureka 如何主动下线服务节点

目录 1.直接停掉客户端服务2.发送HTTP请求1&#xff09;调用DELETE接口2&#xff09;调用状态变更接口 3.客户端主动通知注册中心下线1&#xff09;代码示例2&#xff09;补充3&#xff09;测试 一共有三种从 Eureka 注册中心剔除服务的方式&#xff1a; 1.直接停掉客户端服务…

Unity Obfuscator

官方仓库 学习日期&#xff1a;2023-07-13&#xff08;防止后续仓库特性或功能更新无对比时间&#xff09; 目标&#xff1a;本文介绍使用此github库&#xff0c;混淆unity项目的代码&#xff0c;在ILSpy中无法正确反编译。 一、说明 官方说明 配置界面 Features: ControlFlow…

【Spring Boot】单元测试

单元测试 单元测试在日常项目开发中必不可少&#xff0c;Spring Boot提供了完善的单元测试框架和工具用于测试开发的应用。接下来介绍Spring Boot为单元测试提供了哪些支持&#xff0c;以及如何在Spring Boot项目中进行单元测试。 1.Spring Boot集成单元测试 单元测试主要用…

LabVIEW FPGA利用响应式数字电子板快速开发空间应用程序

LabVIEW FPGA利用响应式数字电子板快速开发空间应用程序 与传统的基于文本的语言相比&#xff0c;LabVIEW的编程和设计已被证明可以缩短开发时间。各种研究表明&#xff0c;生产率的提高在3到10倍之间。LabVIEW通过图形语言、集成开发环境和多个编译器的组合来实现这一点。 图…

Django_发送邮件

目录 一、开启SMTP服务并获取授权码 二、在Django的配置文件中添加邮箱服务配置 三、发送邮箱代码 源码等资料获取方法 使用django邮箱功能需要搭建smtp服务器&#xff0c;如果没有&#xff0c;可以使用第三方smtp服务器。 本文以第三方QQ邮箱服务器演示如何使用python的s…

接口的幂等性如何设计

前言 所谓幂等: 多次调用方法或者接口不会改变业务状态&#xff0c;可以保证重复调用的结果和单次调用的结果一致。 我们在开发中主要操作也就是CURD,其中读取操作和删除操作是天然幂等的&#xff0c;我们所关心的就是创建操作、更新操作。 创建操作一定是非幂等的因为要涉及…

SpringBoot 如何使用 MockMvc 进行 Web 集成测试

SpringBoot 如何使用 MockMvc 进行 Web 集成测试 介绍 SpringBoot 是一个流行的 Java Web 开发框架&#xff0c;它提供了一些强大的工具和库&#xff0c;使得开发 Web 应用程序变得更加容易。其中之一是 MockMvc&#xff0c;它提供了一种测试 SpringBoot Web 应用程序的方式&…

(EMQX)STM32L+BC20+MQTT协议传输温湿度,ADC,电压,GPS数据到EMQX

1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡&#xff0c;天线 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板内&#xff08;注意不要弄错方向&#xff09; 同时接入天线 2.2 连接ST-Link仿真…

RabbitMQ系列(27)--RabbitMQ使用Federation Exchange(联邦交换机)解决异地访问延迟问题

前言&#xff1a; (broker北京)、(broker深圳)彼此之间相距甚远&#xff0c;网络延迟是一个不得不面对的问题。有一个在北京的业务(Client北京&#xff09;需要连接(broker北京),向其中的交换器exchangeA发送消息&#xff0c;此时的网络延迟很小,(Client北京)可以迅速将消息发…

嵌入式QT- QT使用MQTT

目录 一、MQTT介绍 二、MQTT概念 2.1 订阅(Subscribtion) 2.2 会话&#xff08;Session&#xff09; 2.3 主题名&#xff08;Topic Name&#xff09; 2.4 主题筛选器&#xff08;Topic Filter&#xff09; 2.5 消息订阅 三、MQTT中的角色 3.1 客户端 3.2 服务器 四、X86平…

每个前端开发者都应知道的10个实用网站

1.Documatic Documatic 地址&#xff1a;www.documatic.com/ Documatic 是一个高效的搜索引擎工具&#xff0c;旨在帮助开发人员轻松搜索他们的代码库&#xff0c;找到特定的代码片段、函数、方法和其他相关信息。该工具旨在通过在几秒钟内快速提供准确和相关的搜索结果&…

CSDN博客运营团队2023年H1总结

一、运营工作的指导思路 CSDN的核心价值之一是帮助开发者/技术人快速的学习成长和解决技术问题。这个核心价值的建立离不开无数开发者的无私贡献&#xff0c;而运营工作的核心就是要保证这个价值链不断放大&#xff1a;让内容贡献者体验更好&#xff0c;付出有回报&#xff0c…

Maya适合哪个工作站?

Autodesk Maya 提供多种功能&#xff0c;可以适应电影、游戏和建筑等不同行业的需求。定制的 Autodesk Maya 工作站可以帮助您提高行业领先的 3D 计算机动画、建模、模拟和渲染软件的工作效率和用户体验。 根据您的特定需求定制的快速、强大的工作站可以帮助您充分利用 Maya 工…