微信小程序页面跳转和参数传递总结

小程序页面跳转有使用API提供方法跳转和XML设置属性跳转两种方法

一、使用API中的js方法跳转页面

1. navigateTo

保留当前页面,跳转到其他页面,可使用wx.navigateBack返回原页面。

	wx.navigateTo({
  		url: 'page/home/home'
  	})

2.navigateBack

关闭当前页面,返回上一级页面或者多级页面,可通过getCurrentPages()获取当前页面栈序号,通过序号返回层级。

 	wx.navigateTo({
  		url: 'page/news/news'// 页面 A
	})
	wx.navigateTo({
  		url: 'page/detail/detail'// 页面 B
	})
	// 跳转到页面 A
	wx.navigateBack({
  		delta: 2
	})

3. redirectTo

关闭当前页面,跳转到应用内的某个页面。

wx.redirectTo({
  url: 'page/home/home'
})

4. switchTab

跳转到tabBar页面(在app.json中注册过的tabBar页面),同时关闭其他非tabBar页面。

wx.switchTab({
  url: 'page/index/index'
})

5. reLanch

关闭所有页面,打开到应用内的某个页面。

wx.reLanch({
  url: 'page/home/home?user_id=111'
})

二、使用wxml 页面组件跳转(可以通过设置open-type属性指明页面跳转方式)

1. navigator 组件默认的 open-type 为 navigate

//跳转到新页面
<navigator url="/page/navigate/navigate?title=navigate" hover-class="navigator-hover"></navigator>

2. redirect 对应 API 中的 wx.redirect 方法

//在当前页打开
<navigator url="../../home/home" open-type="redirect" hover-class="other-navigator-hover"></navigator>

3. switchTab 对应 API 中的 wx.switchTab 方法

//切换 Tab
<navigator url="/page/index/index" open-type="switchTab" hover-class="other-navigator-hover"></navigator>

4. reLanch 对应 API 中的 wx.reLanch 方法

//关闭所有页面,打开到应用内`的某个页面
<navigator url="../../login/login" open-type="redirect" hover-class="other-navigator-hover"></navigator>

5. navigateBack 对应 API 中的 wx.navigateBack 方法

//关闭当前页面,返回上一级页面或多级页面
<navigator url="/page/index/index" open-type="navigateBack" hover-class="other-navigator-hover"></navigator>

三、页面跳转传递参数

页面跳转传值在url后面拼接要传的参数即可,有两种写法

方法一

	//传递一个参数
	wx.navigateTo({
  		url: 'page/home/home?user_id=1'
	})
	
	//传递多个参数
	wx.navigateTo({
  		url: 'page/home/home?user_id=1&&user_name=张三'
	})
	
	//传递对象
	wx.navigateTo({
  		url: 'page/home/home?user=JSON.stringify(user)'//将对象转换成json字符串
	})

	//在接收页面onLoad方法中获取参数
	onLoad: function (options) {
    	var user= JSON.parse(options.user);//将json字符串转成对象
    	console.log("user "+user);
  	},

方法二

	//传递一个参数
	wx.navigateTo({
  		url: `../detail/detail?name=${name}`
	})
	
	//传递多个参数
	wx.navigateTo({
  		url: `../detail/detail?name=${name}&&id=${id}`
	})
	
	//传递对象
	wx.navigateTo({
  		url: `page/home/home?user=$(JSON.stringify(user))`//将对象转换成json字符串
	})

	//在接收页面onLoad方法中获取参数
	onLoad: function (options) {
    	var user= JSON.parse(options.user);
    	console.log("user "+user);
  	},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我爱写程序

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值