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

三个页面跳转的函数

官方给出了三个页面跳转函数,分别是: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 //获取传递过来的值
	    })
  	},
}

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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐