1. 传参与传对象的区别
在微信小程序中,跳转页面时有两种方式传递数据:传参和传对象。它们之间有什么区别呢?
1.1 传参
传参就是将数据以键值对的形式附加在URL后面,例如:
// fromPage.wxml
<button bindtap="navigateTo">跳转到下一页</button>
// fromPage.js
function navigateTo() {
wx.navigateTo({
url: '/pages/toPage/toPage?id=1&name=test'
})
}
在toPage页面中,可以通过获取options对象来获取传递的参数:
// toPage.js
Page({
onLoad: function (options) {
console.log(options.id) // 输出 1
console.log(options.name) // 输出 test
}
})
1.2 传对象
传对象相对来说更加方便。我们可以直接将对象作为参数传递,例如:
// fromPage.wxml
<button bindtap="navigateTo">跳转到下一页</button>
// fromPage.js
function navigateTo() {
wx.navigateTo({
url: '/pages/toPage/toPage?params={"id":1,"name":"test"}'
})
}
在toPage页面中,可以通过获取options对象并parse转换来获取传递的参数:
// toPage.js
Page({
onLoad: function (options) {
let params = JSON.parse(options.params)
console.log(params.id) // 输出 1
console.log(params.name) // 输出 test
}
})
传参和传对象虽然都可以实现页面跳转传递数据的功能,但是在使用时要根据实际情况选择。一般来说,传对象更加简洁明了,也更加易于维护。
2. 在页面之间传递数据
在微信小程序中,我们可以通过页面跳转时携带数据的方式在不同页面之间传递数据。
2.1 navigateTo和redirectTo
navigateTo和redirectTo是小程序中常用的两个跳转页面的方法。二者的区别在于:navigateTo可以保留当前页面,允许返回上一页;而redirectTo跳转后将关闭当前页面。
下面以navigateTo方法为例,演示如何在页面之间传递数据:
// fromPage.wxml
<button bindtap="navigateTo">跳转到下一页</button>
// fromPage.js
function navigateTo() {
wx.navigateTo({
url: '/pages/toPage/toPage?params={"id":1,"name":"test"}'
})
}
在toPage页面中获取传递的参数:
// toPage.js
Page({
onLoad: function (options) {
let params = JSON.parse(options.params)
console.log(params.id) // 输出 1
console.log(params.name) // 输出 test
}
})
2.2 switchTab
switchTab是小程序中打开Tab页的方法。它不携带任何参数,但是可以在打开页面后通过其他方式获取传递数据,例如利用全局数据或通过调用接口获取。
3. 总结
在小程序中,跳转页面时通过传参和传对象两种方式实现页面之间传递数据,具体使用要根据实际情况选择。在打开Tab页时,可以通过其他方式获取数据。
以上就是关于微信小程序中跳转传参数与传对象的解析。希望对您有所帮助。