在小程序中,页面跳转传参的方式有以下几种:
1. URL参数传递:可以通过在目标页面的URL后面拼接参数来传递数据。例如:
wx.navigateTo({
url: '/pages/targetPage?param1=value1¶m2=value2',
})
在目标页面的onLoad函数中可以通过options对象获取传递的参数:
onLoad: function(options) {
console.log(options.param1); // 输出 value1
console.log(options.param2); // 输出 value2
}
2. 全局变量传递:可以在app.js中定义一个全局数据对象,用于存储需要传递的参数。例如:
// app.js
App({
globalData: {
param1: '',
param2: ''
}
})
// 页面A中设置参数值
getApp().globalData.param1 = 'value1';
getApp().globalData.param2 = 'value2';
// 页面B中获取参数值
var param1 = getApp().globalData.param1;
var param2 = getApp().globalData.param2;
3. Storage本地存储传递:可以使用小程序提供的本地存储API来传递数据。例如:
// 页面A中设置参数值
wx.setStorageSync('param1', 'value1');
wx.setStorageSync('param2', 'value2');
// 页面B中获取参数值
var param1 = wx.getStorageSync('param1');
var param2 = wx.getStorageSync('param2');
4. Event事件传递:可以通过事件的方式在页面之间传递参数。例如:
在页面A中定义一个事件:
// 页面A
Page({
handleClick: function() {
var param1 = 'value1';
var param2 = 'value2';
this.triggerEvent('passParams', {param1, param2});
}
})
在页面B中监听该事件并获取参数值:
// 页面B
Page({
onLoad: function() {
this.onPassParams = function(event) {
console.log(event.detail.param1); // 输出 value1
console.log(event.detail.param2); // 输出 value2
}
this.on('passParams', this.onPassParams);
},
onUnload: function() {
this.off('passParams', this.onPassParams);
}
})
这些是常见的小程序页面跳转传参的方式,你可以根据具体需求选择适合的方式进行参数传递。