微信小程序中路由跳转的方式有哪些?区别?

面试官:说说微信小程序中路由跳转的方式有哪些?区别?

一、是什么

微信小程序拥有web网页和Application共同的特征,我们的页面都不是孤立存在的,而是通过和其他页面进行交互,来共同完成系统的功能

在微信小程序中,每个页面可以看成是一个 pageModelpageModel 全部以栈的形式进行管理

二、有哪些

常见的微信小程序页面跳转方式有如下:

  • wx.navigateTo(Object)
  • wx.redirectTo(Object)
  • wx.switchTab(Object)
  • wx.navigateBack(Object)
  • wx.reLaunch(Object)

wx.navigateTo(Object)

wx.navigateTo()用于保留当前页面、跳转到应用内的某个页面,使用 wx.navigateBack可以返回到原页面

对于页面不是特别多的小程序,通常推荐使用 wx.navigateTo进行跳转, 以便返回原页面,以提高加载速度。当页面特别多时,则不推荐使用

参数表如下所示:

流程图如下:

wx.redirectTo(Object)

重定向,当页面过多时,被保留页面会挤占微信分配给小程序的内存,或是达到微信所限制的 10 层页面栈的情况下,我们应该考虑选择 wx.redirectTo

wx.redirectTo()用于关闭当前页面,跳转到应用内的某个页面

这样的跳转,可以避免跳转前页面占据运行内存,但返回时页面需要重新加载,增加了返回页面的显示时间

参数表如下所示:

流程图如下所示:

wx.switchTab(Object)

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

参数表如下所示:

wx.navigateBack(Object)

wx.navigateBack() 用于关闭当前页面,并返回上一页面或多级页面,开发者可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层则设置对象的delta属性即可

参数表如下:

wx.reLaunch(Object)

关闭所有页面,打开到应用内的某个页面,返回的时候跳到首页

流程图如下所示:

参数表如下所示:

三、总结

关于上述五种跳转方式,做下总结:

  • navigateTo 保留当前页面,跳转到应用内的某个页面,使用 wx.navigateBack 可以返回到原页
  • redirectTo 关闭当前页面,跳转到应用内的某个页面
  • switchTab 跳转到 tabBar 页面,同时关闭其他非 tabBar 页面
  • navigateBack 返回上一页面
  • reLanch 关闭所有页面,打开到应用内的某个页面

其中关于它们的页面栈的关系如下:

  • avigateTo 新页面入栈

  • redirectTo 当前页面出栈,新页面入栈

  • navigateBack 页面不断出栈,直到目标返回页,新页面入栈

  • switchTab 页面全部出栈,只留下新的 Tab 页面

  • reLanch 页面全部出栈,只留下新的页面

参考文献

  • https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.navigateBack.html

更多前端资源==> GitHub

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【FPGA/verilog -入门学习17】vivado 实现串口自发自收程序

1,需求 PC使用串口助手给FPGA板发送9600 波特率的数据,FPGA板接收到数据后,回复同样的数据给PC 2,需求分析 按模块可以划分为: rx接收模块,将输入的8位并行rx 数据转换成[7:0]rx_data 信号,当…

C++面试宝典第18题:旋转数组

题目 给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。要求如下: (1)尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 (2)使用时间复杂度为O(n)和空间复杂度为O(1)的原地算法解决这个问题。 示例 1: 输入: [1, 2, 3, 4, 5, 6, 7] 和 k…

NR中如何判断是否需要measurement gap来做邻区的测量?

先看下NR中定义的测量。 intra-freq 测量和inter-freq测量可以分为以下几类: 1 SSB based intra-freq 测量:serving cell SSB的center freq与邻区 SSB的center freq 相同并且两个SSB 的SCS也相同。 2 SSB based inter-freq 测量:serving ce…

vue3中ref和reactive联系与区别以及如何选择

vue3中ref和reactive区别与联系 区别 1、ref既可定义基本数据类型,也可以定义引用数据类型,reactive只能定义应用数据类型 2、ref在js中取响应值需要使用 .value,而reactive则直接取用既可 3、ref定义的对象通过.value重新分配新对象时依旧…

ROS中私有节点句柄(Private Node Handle)和非私有节点句柄(Global Node Handle)辨析

文章目录 私有节点句柄(Private Node Handle)例子 非私有节点句柄(Global Node Handle)例子 总结节点补充内容 在ROS(Robot Operating System)中,节点句柄(ros::NodeHandle&#xff…

自学Python,需要注意哪些?

为什么要学习Python? 在学习Python之前,你不要担心自己没基础或“脑子笨”,我始终认为,只要你想学并为之努力,就能学好,就能用Python去做很多事情。在这个喧嚣的时代,很多技术或概念会不断兴起…

php 函数声明与调用

在 PHP 中,函数声明和调用的语法如下: 函数声明的一般形式为: function functionName($param1, $param2, ...) {// 函数体return $result; // 可选 } 例如: function add($a, $b) {return $a $b; } 函数调用的一般形式为&am…

vue模板判断-不要再傻傻写if()了

在vue开发中,有时会遇到需要在模板里写 v-if"userType AGENCY || userType PLACE || userType MANAGEMENT"但是这样写可能不太美观 这时可以改为用计算属性加include或者some computed: {isAgencyUser() {const { userType } this// return [AGENCY, P…

2. 条件构造器

构造器结构及作用: Wrapper:条件构造器抽象类,最顶端的父类 AbstractWrapper:查询条件封装抽象类,生成 SQL 的 where 条件 QueryWrapper:用于对象封装UpdateWrapper:用于条件封装 AbstractLamb…

hive sql 和 spark sql的区别

Hive SQL 和 Spark SQL 都是用于在大数据环境中处理结构化数据的工具,但它们有一些关键的区别: 底层计算引擎: Hive SQL:Hive 是建立在 Hadoop 生态系统之上的,使用 MapReduce 作为底层计算引擎。因此,它的…

Elasticsearch 地理空间搜索 - 远超 OpenSearch

作者:来自 Elastic Nathan_Reese 2021 年,OpenSearch 和 OpenSearch Dashboards 开始作为 Elasticsearch 和 Kibana 的分支。 尽管 OpenSearch 和 OpenSearch Dashboards 具有相似的血统,但它们不提供相同的功能。 在分叉时,只能克…

第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库

文章目录 第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库使用 $ZF(-6) 按用户索引访问库使用 $ZF(-4,5) 定义系统索引条目使用 $ZF(-6) 调用函数 第二十章 调用Callout Library函数 - 使用 $ZF(-6) 按用户索引访问库 使用 $ZF(-6) 按用户索引访问库 $ZF(…

纯化蛋白质树脂ES-4060_用于吸附蛋白质树脂

蛋白纯化树脂是一种固定在基质中的化学物质,具有选择性地与目标蛋白结合,并通过洗脱将其从混合物中分离出来。蛋白纯化树脂的工作原理主要分为三个步骤:吸附、洗脱和再生。 吸附 蛋白纯化树脂通过与目标蛋白之间的特定相互作用来吸附目标蛋白。这些相互…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷5

某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenStack搭建企业内部私有云平台,开源Kubernetes搭建云原生服务平台,选…

《Git学习笔记》

Git概述 什么是Git? Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。 学完Git之后能做什么 代码回溯:Git在管理文件过程中…

Kafka集群部署 (KRaft模式集群)

KRaft 模式是 Kafka 在 3.0 版本中引入的新模式。KRaft 模式使用了 Raft 共识算法来管理 Kafka 集群元数据。Raft 算法是一种分布式共识算法,具有高可用性、可扩展性和安全性等优势。 在 KRaft 模式下,Kafka 集群中的每个 Broker 都具有和 Zookeeper 类…

飞腾FT2000-4/D2000-8 VPX主板

产品特点 ①国产飞腾FT2000-4或D2000-8处理器 ,同一模块兼容两种处理器,可以根据性能需要选择 ②丰富的万兆以太网、千兆以太网、USB、SATA接口,可用作数据处理、存储、通信服务器 ③内部集成FPGA-V7协处理器,支持SRIO、LVDS等…

【LangChain学习之旅】—(5) 提示工程(上):用少样本FewShotTemplate和ExampleSelector创建应景文案

【LangChain学习之旅】—(5) 提示工程(上):用少样本FewShotTemplate和ExampleSelector创建应景文案 提示的结构LangChain 提示模板的类型使用 PromptTemplate使用 ChatPromptTemplateFewShot 的思想起源使用 FewShotPr…

vue+element ui实现图片上传并拖拽进行图片排序

用到的技术栈&#xff1a; vue2element Uivue-dragging 如何使用&#xff1a; 第一步: 安装 npm install awe-dnd --save第二步: 引入 main.js 文件 // 引入组件 import VueDND from awe-dnd // 添加至全局 Vue.use(VueDND)具体项目代码 <el-form-item label"封面…

Org tips

常用快捷方式操作 ** C-c a 显示议事日程Agenda&#xff0c;接以下按键可看到相应日程&#xff1a; a 本周事件 t 显示所有事件 m 查询标签 L 当前缓冲区时间线 s 查询关键词 T 查询带TODO关键词的项 M 查询带TODO关键词的标签 显示已停止事件 q 退出日程表 * a 内置…