摘要 当一个小程序存在多个页面时,一般会有页面跳转功能,通常是通过绑定一个事件来触发(如绑定一个按钮,按下按钮后跳转到其它页面);本文详细讲解一下关于微信小程序如何实现页面跳转,以及页面跳转后实现页面之间进行值传递,还有讲解一下官方给出的三个页面跳转函数的区别。
三个页面跳转的函数
官方给出了三个页面跳转函数,分别是: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():
在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 //获取传递过来的值
})
},
}
注意:传递过来的值必须是在路径的后面加上:?变量名=值
不能只加变量名,而且该变量名可以随意取,并无需定义,它只是一个符号。