小程序传参

如果小程序中页面跳转使用传参频繁,那在这里不建议使用微信源生的tabBar

在微信官方文档中,跳转到tabBar页面时是不允许传参的

微信小程序tabBar页面跳转

这里的tabBar尽量自己写一个,而且官方的页面底部tab对样式有限制,并不是所有的样式都能满足

小程序对tab的约束

页面跳转时的传参

  1. 页面间的参数可以直接挂在URL上
    在这里插入图片描述

和网页间参数传递一样的用法,但是在获取参数时可以使用 wx.getLaunchOptionsSync() 来获取到, query 下的数据就是传递的参数, 这里的参数并不是一开始的参数, 这个参数是实时的,每传递一次参数,这里的query中的内容都会是你当前页面的参数
进入页面时可以直接在页面的onLoad中捕获到用户传递的参数

Page({
	onLoad(res) {
		// res里的query就是用户传递的参数
	}
})
  1. 传递对象/数组
    小程序中没有直接传递对象/数组的方法,但是小程序中的storage可以保存对象/数组类型的数据 :
    1️⃣可以先将数据在页面跳转之前保存到storage中,跳转完成之后,在新页面中获取保存的数据,再将保存的数据remove.但是这个方法并不推荐使用,使用不仅不方便,而且会影响小程序执行的速度
    2️⃣将数据使用Json.stringify转换成字符串,然后挂到URL上,使用URL传递参数,在新页面中使用Json.parse将参数从字符串转换成对象/数组

  2. 进入小程序时携带参数
    有时进入小程序时就需要携带参数,进入小程序时,可以在小程序的入口文件onLaunch和onShow中捕获到所有的参数,也可以在页面中使用wx.getLaunchOptionsSync()来获取到传入的参数.

App({
	onLaunch: function (options) { 
		// 小程序加载时执行的函数
	},
	onShow: function (options) { 
		/*
			小程序显示时执行的函数
			1. 小程序首次加载时会执行此函数
			2. 小程序从后台返回时会执行此函数
			3. 使用wx.reLaunch跳转时会执行此函数
		*/
	}
})

小程序加载时的参数有两种,一种是系统自带的参数,另一种是用户自定义的参数;

首先是path,也就是小程序启动时页面的路径,用户自定义的参数都是挂在这个上面的,但是在这里不显示
其次是scene, 场景值,也就是启动小程序的场景;
然后就是query,用户自定义挂到页面路径上的参数会在这里以对象的结构呈现;
shareTicket, 当用户通过转发的链接打开的小程序时,和转发相关的信息会带在这里一并传递给小程序;
referrerInfo, 当用户从小程序/公众号/app中进入小程序时带有的参数,否则为 {}

返回有效 referrerInfo 的场景

场景值 场景 appId含义
1020 公众号 profile 页相关小程序列表 来源公众号
1035 公众号自定义菜单 来源公众号
1036 App 分享消息卡片 来源App
1037 小程序打开小程序 来源小程序
1038 从另一个小程序返回 来源小程序
1043 公众号模板消息 来源公众号

猜你喜欢

转载自blog.csdn.net/qq_25000935/article/details/87447434
今日推荐