1、常规的路由拼接传参方式
传递参数:
let temporaryObj = {
id:1,
name:'名称',
content:'这是一段文字描述'
}
uni.navigateTo({
url: `/pages/addd?data=${JSON.stringify(temporaryObj)}`
})
获取参数:
onLoad(data) {
if (data.data) {
let initData = JSON.parse(data.data);
}
},
这种方式有一种缺陷,在传递大量参数时可能会造成数据截断或者数据不全的问题,导致接收数据页面无法正确拿到参数。以下的其中一种解决方式
//使用 encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
uni.navigateTo({
url: `/pages/addd?data=${encodeURIComponent(JSON.stringify(temporaryObj))}`
})
//使用 decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。
let initData = JSON.parse(decodeURIComponent(data.data));