小程序路由传参的方法有两种:
1.通过URL参数传递:可以在跳转页面时在URL中携带参数,目标页面可以通过获取URL参数来使用。使用wx.navigateTo
或wx.redirectTo
方法进行页面跳转,并在URL中添加参数。
示例代码如下:
// 页面A跳转到页面B,并传递参数
wx.navigateTo({url: '/pages/bPage/bPage?id=123&name=小明'
});
在页面B中,可以通过getCurrentPages
方法获取当前页面栈,并从栈顶获取参数:
// 页面B获取参数
const pages = getCurrentPages();
const currentPage = pages[pages.length - 1];
const options = currentPage.options; // 获取URL参数console.log(options.id); // 输出:123
console.log(options.name); // 输出:小明
2.使用全局数据存储:可以将参数存储在全局数据中,在目标页面中直接获取和使用。通过getApp()
方法获取小程序实例,在实例中定义一个全局数据变量,在源页面设置参数值,在目标页面获取参数值即可。
示例代码如下:
// 在源页面设置参数值
const appInstance = getApp();
appInstance.globalData.id = 123;
appInstance.globalData.name = '小明';// 页面A跳转到页面B
wx.navigateTo({url: '/pages/bPage/bPage'
});
在页面B中,可以通过getApp()
方法获取小程序实例,并直接从全局数据中获取参数值:
// 页面B获取参数
const appInstance = getApp();
console.log(appInstance.globalData.id); // 输出:123
console.log(appInstance.globalData.name); // 输出:小明
以上是两种常见的小程序路由传参方法,可以根据具体需求选择使用。