uniapp vue 页面传参问题encodeURIComponent

页面传参objet json序列化后可能会报错

Uncaught SyntaxError: missing ) after argument list

但不一定是数据有问题,而是json成字符串后,字符串中有特殊字符,所以导致parse的时候格式不对。所以解决方案如下

如果传递参数为对象的时候,需要转换成字符串,然后接收的时候,再转换成对象。

如果只是一个字符串的话,就不需要转换了

向子页面传递参数:

javascript 复制代码
uni.navigateTo({
    url: '/pages/index/index?myData=' + encodeURIComponent(JSON.stringify(row))
})

子页面接收数据:

javascript 复制代码
onLoad(option) {
    const myData = JSON.parse(decodeURIComponent(option.myData))
    console.log(myData)
}

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。

所以

1、项目中如果我们传的参数出现#,/,&这些字符,这些特殊字符会导致我们接收参数的错误
2、必须要用 encodeURIComponent 编码,目标页面进行 decodeURIComponent 解码
相关推荐
人工智能训练5 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪5 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
pas1368 小时前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
摇滚侠8 小时前
2 小时快速入门 ES6 基础视频教程
前端·ecmascript·es6
珑墨9 小时前
【Turbo】使用介绍
前端
军军君019 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
打小就很皮...10 小时前
Tesseract.js OCR 中文识别
前端·react.js·ocr
wuhen_n11 小时前
JavaScript内存管理与执行上下文
前端·javascript
Hi_kenyon11 小时前
理解vue中的ref
前端·javascript·vue.js
落霞的思绪12 小时前
配置React和React-dom为CDN引入
前端·react.js·前端框架