开发小程序,页面之间传数据是绕不开的事。用户在列表页点了一件商品,进到详情页,总得知道点的是哪一件;从不同活动入口进来的落地页,展示内容也往往要跟着变。这些需求最后多半会指向同一个方案:把参数拼进跳转链接里带过去。思路直观,实现也轻,花几分钟弄明白并不亏。
具体怎么做?先看最常见的情形。假设页面A要把param1和param2两个参数交给页面B,构造跳转链接时把它们直接拼在页面路径后面就行,形式大致是"pages/B/B?param1=value1¶m2=value2"——参数跟在问号后面,多个参数之间用&隔开,链接本身依然指向页面B,跳转逻辑不受影响。

到了页面B这边,收参数靠的是onLoad函数。页面一加载,小程序就会把链接携带的参数整理成options对象传进来,直接取用即可:
onLoad: function (options) {
console.log(options.param1); // 输出value1
console.log(options.param2); // 输出value2
}
参数到手,后面的事就好办了。最常见的用法是拿参数值去请求接口——详情页用商品id查详情,订单页用订单号查状态,走的都是这个路数。也可以依据参数渲染不同内容,做些个性化的展示。数据一通,页面才算真正“活”了起来。
不过有个细节得留意。跳转目标如果是tabBar页面,普通跳转会行不通,需要在链接里额外加个参数来指定。比如页面B恰好是tabBar页面之一,链接上就得带上switchTab: true,相当于告诉小程序这次走的是切换标签页的逻辑。这一步要是漏了,跳转容易失败,或者参数根本收不到,排查起来挺费时间。
参数的形态也不止一种。复杂些的数据结构,比如一个对象,同样能传过去,页面B的接收写法类似:

onLoad: function (options) {
console.log(options.obj.param1); // 输出value1
console.log(options.obj.param2); // 输出value2
}

只是数据一复杂,链接难免跟着变长,碰上特殊字符还得考虑转义。尤其当这条带参数的链接要投放到外部渠道——印上海报、发进社群、挂到广告里——长长一串URL的观感实在算不上好。这种时候不妨借助短链接服务处理:不少工具支持自定义短码、查看点击统计,有的还能随时更换跳转的目标地址,哪怕链接已经发出去了也能改,做推广和运营的话相当省心。
整套方法说到底就三步:拼链接,在onLoad里取参数,再按参数干活。谈不上什么技术门槛,胜在简单直接。数据能在页面之间自由流转,用户点进去看到的就是自己选中的那条内容,体验自然顺了。对开发者来说,这也是让小程序交互变得丰富灵活的一块基石——把它用熟,很多页面联动的需求都能顺势解决。
立即登录