微信小程序:页面跳转以及页面间值传递(wx.navigateTo、wx.redirectTo、wx.reLaunch)

摘要 当一个小程序存在多个页面时,一般会有页面跳转功能,通常是通过绑定一个事件来触发(如绑定一个按钮,按下按钮后跳转到其它页面);本文详细讲解一下关于微信小程序如何实现页面跳转,以及页面跳转后实现页面之间进行值传递,还有讲解一下官方给出的三个页面跳转函数的区别。

三个页面跳转的函数

官方给出了三个页面跳转函数,分别是:wx.navigateTo、wx.redirectTo、wx.reLaunch;这三个函数均能实现页面跳转的功能。而不同的是:
wx.navigateTo:跳转到新页面,可以返回上一层页面
wx.redirectTo:跳转到新页面并且关闭当前页面,不可以返回上一层页面
wx.reLaunch:跳转到新页面并且关闭当前所有页面,不可以返回上一层页面

如wx.navigateTo跳转到新页面后,在新页面的左上方有一个返回键,如下图的红色圈所示,
在这里插入图片描述
而wx.redirectTo和wx.reLaunch是没有上图的返回上一层的按钮,而有一个小房屋的home键,如下图所示;它可以返回到主页面,即app.json的Pages:[ ]的第一个路径
在这里插入图片描述

页面跳转

本次示例采用wx.navigateTo函数做讲解,其余两个函数的用法一样,只需改写函数名即可。
项目创建两个page,分别为first和second,first为当前页面,second为要跳转到的新页面。跳转页面功能通过一个按钮来触发事件。

在first.wxml里展示一个按钮,按钮绑定一个函数:gotoSecond():

<button bindtap="gotoSecond">跳转到新页面</button>

在first.js里定义按钮绑定的函数:

gotoSecond:function(){
    wx.navigateTo({
      url: '/pages/second/second', //页面路径
    })
  },

以上代码可实现:点击按钮便可跳转页面

页面跳转之间的值传递

值传递是指页面跳转后,传递一个值给新的页面,方法如上,只需在first.js文件的跳转函数的路径再做修改即可:

gotoSecond:function(){
    wx.navigateTo({
      url: '/pages/second/second?value=10', 
    })
  },

在新页面second获取传递过来的值,可在second.js的onLoad()函数获取

Page({
	data{
		value:null, //定义一个变量,用来保存传递过来的值
	},
	
	onLoad: function (options) {
	    this.setData({
	      value:options.value //获取传递过来的值
	    })
  	},
}

注意:传递过来的值必须是在路径的后面加上:?变量名=值
不能只加变量名,而且该变量名可以随意取,并无需定义,它只是一个符号。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
wx.navigateTowx.redirectTo是微信小程序中用于页面跳转的两个方法,它们的区别在于跳转后是否允许返回原页面wx.navigateTo用于保留当前页面,跳转到应用内的某个页面,可以跳转到任意页面,包括tabbar页面。跳转后,原页面仍然存在于页面栈中,可以通过调用wx.navigateBack返回原页面。这种方式适用于页面较多的小程序,可以提高加载速度。 wx.redirectTo用于关闭当前页面,跳转到应用内的某个页面,但不允许跳转到tabbar页面。跳转后,原页面会被销毁,无法通过返回按钮或wx.navigateBack返回原页面。这种方式适用于不需要返回原页面的场景。 综上所述,wx.navigateTowx.redirectTo的主要区别在于跳转后是否允许返回原页面。如果需要返回原页面,可以使用wx.navigateTo;如果不需要返回原页面,可以使用wx.redirectTo。 #### 引用[.reference_title] - *1* *2* [wx.navigateTo()与wx.switchTab、wx.redirectTo()的区别](https://blog.csdn.net/qq_41988669/article/details/126968459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [微信小程序中的wx.navigateTowx.redirectTo,wx.reLaunch区别](https://edu.csdn.net/skill/mini_programs/mini_programs-06894114340c4f57beb9f46d9f6edf50)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值