什么是微信小程序的动态传参?
在微信小程序中,传递参数的方式有两种,一种是通过页面路径传递参数,另一种是通过动态传参的方式来传递参数。本文将重点介绍微信小程序的动态传参,包括什么是动态传参以及如何使用动态传参。
动态传参是什么?
简单来说,动态传参就是在页面跳转的时候,将参数动态地传递给下一个页面。这个过程中,我们需要用到小程序提供的navigator组件,具体实现方法如下:
navigator.goToPage({
url: '/pages/detail/detail?id=123&name=test',
})
如何在跳转的目标页面中获取参数?
获取参数的方式比较简单,在目标页面的onLoad()函数中,我们可以通过options对象来获取传递的参数:
onLoad: function(options) {
console.log(options.id) // 输出 123
console.log(options.name) // 输出 test
}
如何在动态传参时传递复杂类型的参数?
在动态传参时,我们可以传递字符串、数字、布尔值等基本类型的参数,但是如果需要传递复杂类型的参数,我们需要将其转换成字符串,并通过encodeURIComponent()函数进行编码。在目标页面中,我们需要通过decodeURIComponent()函数进行解码得到原始数据。
var obj = { name: 'test', age: 18 }
var str = JSON.stringify(obj)
var encodedStr = encodeURIComponent(str)
navigator.goToPage({
url: '/pages/detail/detail?data=' + encodedStr
});
onLoad: function(options) {
var decodedStr = decodeURIComponent(options.data)
var obj = JSON.parse(decodedStr)
console.log(obj) // 输出 { name: 'test', age: 18 }
}
小结
动态传参是微信小程序中非常重要的一种传参方式,通过该方式可以方便地在不同的页面之间传递参数。需要注意的是,在传递复杂类型的参数时,需要进行相应的编码和解码操作。希望本文能够让读者对微信小程序的动态传参有更深入的了解。