位置: IT常识 - 正文

Vue Router4 ,prams 传参失效和报错问题

编辑:rootadmin
Vue Router4 ,prams 传参失效和报错问题 Vue3 使用 Vue Router 时,prams 传参失效和报错问题

推荐整理分享Vue Router4 ,prams 传参失效和报错问题,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

我尝试使用 prams 传递数据

<script setup>import { useRouter } from 'vue-router'const router = useRouter()const params = { id: '1', name: 'ly', phone: 13246566476, age: 23 }const toDetail = () => router.push({ name: 'detail', params })</script><template> <el-button type="danger" @click="toDetail">查看情页</el-button></template>

在接收页面尝试渲染 prams 传递的数据:

<template> <div>姓名:{{ route.params?.name }}</div> <div>电话:{{ route.params?.phone }}</div> <div>年龄:{{ route.params?.age }}</div></template><script setup>import { useRoute } from 'vue-router'const route = useRoute()</script>

当我跳转页面时,得到的 prams 数据为空 ,控制台也出现了 Vue Router 的警告

点开链接后发现了原因, 点击查看更新日志

也就是说,从Vue Router的2022-8-22 这次更新后,我们使用上面的方式在新页面无法获取:

vue也给我们提出了代替方案:

使用 query 的方式传参

只要改成query 传参就好了,注意query传参只能用路由表中的 path ,不是 name ,并且所有参数都会显示在URL 地址上。

<script setup>import { useRouter } from 'vue-router'const router = useRouter()const query = { id: '1', name: 'ly', phone: 13246566476, age: 23 }const toDetail = () => router.push({ path: '/detail', query })</script><template> <el-button type="danger" @click="toDetail">查看情页</el-button></template>Vue Router4 ,prams 传参失效和报错问题

将参数放在 pinia 或 vuex仓库里

使用动态路由匹配

传递 state,在新页面使用 History API 接收参数

使用 meta 原信息方式传递 (此方式更适用于路由守卫)

使用动态路由匹配

如果传递参数较少的情况下,可以尝试使用下面这种方式,只要修改一下path定义部分就可以了:

// params 传递的参数: { id: '1', name: 'ly', phone: 13246566476, age: 23 }{ path: '/detail/:id/:name/:phone/:age', name: 'detail', component: () => import('@/views/detail/index.vue')}

查看页面效果,控制台警告也消失了:

注意,如果使用使用了这种动态路由匹配方式, path: '/detail/:id/:name/:phone/:age' ,中这三个参数你都必须传递,否则会报错:

个人觉得这么写很鸡肋: 如果不把params参数写在路由路径中无法得到 params 参数,这种方式的params参数又会显示在地址栏。虽然不算弃用params, 但是每次把params参数写在路由路径中是很麻烦的一件事。

使用HistoryAPI方式传递和接收

在跳转前的页面使用 state 参数:

<script setup>import { useRouter } from 'vue-router'const router = useRouter()const params = { id: '1', name: 'ly', phone: 13246566476, age: 23 }const toDetail = () => router.push({ name: 'detail', state: { params } })</script><template> <el-button type="danger" @click="toDetail">查看情页</el-button></template>

跳转的后页面接收:

<template> <div>{{ historyParams }}</div></template><script setup lang="ts">const historyParams = history.state.paramsconsole.log('history.state', history.state)</script>

本文链接地址:https://www.jiuchutong.com/zhishi/298565.html 转载请保留说明!

上一篇:性能优化之-事件代理(性能优化有什么用)

下一篇:OpenAI发布GPT-4;目前最完整的ChatGPT资源库;中文版提示词工程指南;AI颠覆播客体验;ChatGPT引发的10大职业危机 | ShowMeAI日报(openai发布时间)

  • vivo x27怎么设置视频通话美颜(vivox27怎么设置返回键在桌面)

    vivo x27怎么设置视频通话美颜(vivox27怎么设置返回键在桌面)

  • 美图秀秀视频拼图时为什么没有原音(美图秀秀视频拼接怎么做无缝隙)

    美图秀秀视频拼图时为什么没有原音(美图秀秀视频拼接怎么做无缝隙)

  • 小翼管家为什么闪退(小翼管家为什么不能接入设备)

    小翼管家为什么闪退(小翼管家为什么不能接入设备)

  • 设置主页为使用默认页(设置主页为使用默认值怎么设置)

    设置主页为使用默认页(设置主页为使用默认值怎么设置)

  • b站如何看同时观看在线人数

    b站如何看同时观看在线人数

  • 苹果手机排线松了会有什么症状(苹果手机排线松了修一下多少钱)

    苹果手机排线松了会有什么症状(苹果手机排线松了修一下多少钱)

  • 数据模型是什么(数据模型是什么的核心)

    数据模型是什么(数据模型是什么的核心)

  • abs和pbt键帽的区别(pbt和abs键帽区别)

    abs和pbt键帽的区别(pbt和abs键帽区别)

  • 手机专业拍照使用方法(手机相机专业拍照)

    手机专业拍照使用方法(手机相机专业拍照)

  • 内存储器可分为哪三类(内存储器可分为什么和什么两种)

    内存储器可分为哪三类(内存储器可分为什么和什么两种)

  • 苹果7怎么老是闪退(苹果7怎么老是显示无服务)

    苹果7怎么老是闪退(苹果7怎么老是显示无服务)

  • 微信群邀请多久失效(微信加人拉群一个35元)

    微信群邀请多久失效(微信加人拉群一个35元)

  • word划线怎么能画直线(word划线怎么能画斜线)

    word划线怎么能画直线(word划线怎么能画斜线)

  • 电脑怎么开麦克风(电脑怎么开麦克风权限win7)

    电脑怎么开麦克风(电脑怎么开麦克风权限win7)

  • Realme是什么牌子(realme是什么牌子的手机)

    Realme是什么牌子(realme是什么牌子的手机)

  • oppo官网电话号码多少(oppo官网联系电话)

    oppo官网电话号码多少(oppo官网联系电话)

  • 华为free bud3什么时候上市(华为free buds3使用)

    华为free bud3什么时候上市(华为free buds3使用)

  • 快手直播观看人数在哪(快手直播观看人数10w+是多少人)

    快手直播观看人数在哪(快手直播观看人数10w+是多少人)

  • 开机怎么进入pe系统(开机怎么进入pe系统传输文件到U盘)

    开机怎么进入pe系统(开机怎么进入pe系统传输文件到U盘)

  • 苹果手机怎么知道购买时间(苹果手机怎么知道wifi密码)

    苹果手机怎么知道购买时间(苹果手机怎么知道wifi密码)

  • 伪基站是什么

    伪基站是什么

  • 5g商用时间(正式启动5g商用时间)

    5g商用时间(正式启动5g商用时间)

  • 华为手机钱包在哪里(华为手机钱包在哪里打开)

    华为手机钱包在哪里(华为手机钱包在哪里打开)

  • 饿了么如何部分退款(饿了么如何部分退款要到货后才可以操作吗)

    饿了么如何部分退款(饿了么如何部分退款要到货后才可以操作吗)

  • 苹果储存其他是什么(苹果储存的其他是什么意思)

    苹果储存其他是什么(苹果储存的其他是什么意思)

  • Html5钢琴块游戏制作(音乐游戏)(钢琴块小游戏在线玩)

    Html5钢琴块游戏制作(音乐游戏)(钢琴块小游戏在线玩)

  • 小规模合作社免税吗
  • 合理避税与偷税漏税的行为区别
  • 实收资本的账务处理是怎样的
  • 公司合同是公司员工个人名义签订如何入账?
  • 残疾人就业保障金会计分录怎么做
  • 企业所得税怎么缴纳
  • 围挡制作开票的税收分类
  • 研发费用 会计核算
  • 金蝶kis 反结账
  • 买金税盘发票能全额抵进项税吗
  • 留抵进项税额
  • 土地增值税清算利息扣除规定
  • 供应商价格折扣
  • 存款利率怎么算存一年后的金额
  • 短期借款的利息会计分录怎么写
  • 展厅门口如何布置图片
  • 季度营业额超过6万需要补税
  • 汽车装饰用品大全进货
  • 购买材料物资入账需哪些原始凭证?
  • 月末进项税额结转会计分录
  • 变更股权需要资质证书吗
  • 临时工工资怎么处理
  • 购买的房屋如何过户
  • 美团佣金收费标准结构图
  • 小规模纳税人免征增值税的账务处理
  • php开源软件
  • win101709密钥
  • php自学
  • 外币报表折算差额计入其他综合收益
  • 业务招待费的会计科目
  • vue3 超好用的富文本编辑器
  • kcleaner.exe是什么
  • 报销差旅费会计凭证
  • 环境保护税的征税范围及计税依据
  • zabbix server端口
  • css过渡动画属性
  • php错误和异常
  • thinkphp d方法
  • 材料明细帐
  • 多交增值税计入什么科目
  • 资产减值损失为什么要调增
  • 如何处理经营租赁合同
  • 注册公司冠名省需要多少注册资金
  • 预付和挂账怎么做分录
  • 员工回家探亲的文案
  • 利息应怎么录入收入
  • 金蝶软件如何新增账套
  • 公司车转个人名下车牌需要换吗
  • 劳务外经证预缴税款
  • 临时工资怎么核算
  • 零余额账户用款额度是什么意思
  • 企业弥补亏损的渠道有哪些
  • 个税 退手续费
  • 主营业务成本借贷方向增减
  • 高价卖股份犯法么
  • 待抵扣进项税额什么意思
  • 开工程款发票有什么规定?
  • 小规模附加税优惠政策最新2023
  • 资产季末值
  • 劳务派遣可以享受产假吗
  • 生产成本和生产费用的关系
  • linux系统中用户账户有哪些分类
  • freebsd版本选择
  • ubuntu tc
  • ubuntu双显卡驱动安装
  • 怎么清理win7
  • Ubuntu系统怎么设置IP
  • java.exe是指
  • win10太麻烦了
  • win7耳机和外放一起响
  • VS2013 OpenGL MFC 编程问题
  • cocos2d-x起点之程序的入口
  • 铁嘴下山全文免费阅读
  • 在一个批处理系统中
  • python解析数据
  • jquery设置隐藏属性
  • 怎么查询河南省考职位报名人数
  • 总包发票税率
  • 消费税的征税范围包括
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设