位置: 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发布时间)

  • 国际上网可以卸载吗(国际上网卸载了怎么下回来)

    国际上网可以卸载吗(国际上网卸载了怎么下回来)

  • 苹果移动变成cmcc(苹果移动变成E)

    苹果移动变成cmcc(苹果移动变成E)

  • 10.5寸ipad长宽是多少厘米(10.5英寸ipad长宽)

    10.5寸ipad长宽是多少厘米(10.5英寸ipad长宽)

  • 小米手机移除动画是什么意思(小米手机移除动画)

    小米手机移除动画是什么意思(小米手机移除动画)

  • 闲鱼禁言7天怎么解除(闲鱼禁言7天怎么申诉)

    闲鱼禁言7天怎么解除(闲鱼禁言7天怎么申诉)

  • 苹果手机到晚上背景变黑怎么办(苹果手机到晚上没有提示)

    苹果手机到晚上背景变黑怎么办(苹果手机到晚上没有提示)

  • 腾讯影视库可以删除吗(腾讯影视库可以删掉吗)

    腾讯影视库可以删除吗(腾讯影视库可以删掉吗)

  • 电脑屏幕分辨率怎么调都不对(电脑屏幕分辨率调整不了怎么办)

    电脑屏幕分辨率怎么调都不对(电脑屏幕分辨率调整不了怎么办)

  • 爱奇艺怎么截图无水印(爱奇艺怎么截图二维码让别人登录)

    爱奇艺怎么截图无水印(爱奇艺怎么截图二维码让别人登录)

  • 微信付款码多久失效(微信付款码多久更新)

    微信付款码多久失效(微信付款码多久更新)

  • 闲鱼卖家取消交易影响信誉么(闲鱼卖家取消交易钱会退给买家吗)

    闲鱼卖家取消交易影响信誉么(闲鱼卖家取消交易钱会退给买家吗)

  • 手机和电脑可以同时登录钉钉吗(手机和电脑可以联机的游戏)

    手机和电脑可以同时登录钉钉吗(手机和电脑可以联机的游戏)

  • 快手注销了还能找回来吗(快手注销了还能登录吗)

    快手注销了还能找回来吗(快手注销了还能登录吗)

  • vivo手机怎么改微信铃声(vivo手机怎么改时间)

    vivo手机怎么改微信铃声(vivo手机怎么改时间)

  • 手机为什么不能计步(手机为什么不能打电话)

    手机为什么不能计步(手机为什么不能打电话)

  • iphone8p多重(苹果8p手机有多重)

    iphone8p多重(苹果8p手机有多重)

  • 抖音商品分享功能怎么开通(抖音商品分享功能是什么意思)

    抖音商品分享功能怎么开通(抖音商品分享功能是什么意思)

  • 夜光屏是什么(夜光屏是什么东西)

    夜光屏是什么(夜光屏是什么东西)

  • 笔笔攒解冻钱去哪了(笔笔攒解冻的钱在哪里)

    笔笔攒解冻钱去哪了(笔笔攒解冻的钱在哪里)

  • 怎么解除苹果手机来电静音(怎么解除苹果手机和ipad同步)

    怎么解除苹果手机来电静音(怎么解除苹果手机和ipad同步)

  • 华为手机隐藏通话记录(华为手机隐藏通知内容)

    华为手机隐藏通话记录(华为手机隐藏通知内容)

  • iphonex如何实现双卡(iphonex如何实现双卡双待)

    iphonex如何实现双卡(iphonex如何实现双卡双待)

  • 微信怎么看即刻视频(微信怎么看即刻转账记录)

    微信怎么看即刻视频(微信怎么看即刻转账记录)

  • tt语音怎么退出公会群(tt语音怎么修改地址)

    tt语音怎么退出公会群(tt语音怎么修改地址)

  • 职工福利费的税额
  • 研发机构采购设计方案
  • 所得税汇算清缴账务处理
  • 营改增后企业所得税分成比例
  • 零税率和免税一样吗?哪一个更优惠?
  • 个人所得税离职补偿金优惠政策
  • 对公走账是什么意思
  • 非营利组织可以开发票吗
  • 建筑安装企业增值税税负
  • 什么叫企业过桥资金
  • 政府补贴流程
  • 物业前期开办物资
  • 自己生产的产品用于职工福利
  • 电视台广告费可以抵扣吗
  • 公司注销固定资产交什么税
  • 银行罚息怎么入账
  • 代驾费开增值税专票还是普票?
  • 一般纳税人转出进项税额
  • 企业转让股权取得的收入征税吗
  • 公司注册资本会留存多少
  • 发票一定要房东开的才能报销吗?
  • 直接收费金融服务、提供贷款服务和金融商品转让税率
  • 购买固定资产的税率是多少
  • 下属单位或者其他单位和个人的车辆
  • 支付工资资产减少了吗
  • 企业向个人借款是否交印花税
  • 关于设备延期交付说明
  • 财务报告成本
  • Windows11安装不了空件怎么处理
  • 小企业会计准则没有以前年度损益调整科目
  • php 混淆
  • 营改增后房地产企业账务处理
  • u启动u盘怎么装系统
  • win7网络连接在哪里打开
  • 总分机构什么时候备案
  • 对出纳的要求
  • php网页安全认证是什么
  • php清除缓存的几个方法
  • 阿尔卑斯山环保
  • 企业所得税必须要季度缴纳吗
  • php功能模块
  • chkconfig命令参数
  • php中的数据类型有哪些?
  • 广东高速公路过路费官网
  • 织梦参数配置设置
  • 租用办公室装修费用会计分录
  • 小规模纳税人增值税税率
  • mongodb与mysql相比的优缺点
  • 普通发票该可以抵扣吗
  • 信息采集是哪个部门负责
  • 支付增值税税控系统技术维护费用
  • 开票key
  • 库存,收入,支出,进货
  • 企业用现金支付本企业职工工资时应
  • 文化事业建设费计入什么科目
  • 土地租赁费如何摊销
  • 增值税涉及的税目有哪些
  • 会计处理的相关知识点
  • 所有者权益科目有哪些
  • 工程未完工开了发票怎么做账
  • Windows XP with SP2/SP3 原版下载汇总
  • wps.exe是什么
  • yum命令作用
  • windowsxp复制粘贴不可用?
  • linux 常用 命令
  • win7系统不兼容开不了机
  • react service worker
  • cocos2dx2.2.5在iOS下加入Google AdMob可能会遇到的问题
  • unity调用c++动态库
  • 批处理文件如何运行
  • python 条件变量
  • jquery弹出div遮罩层
  • 对python变量的理解
  • 税务稽查案件办案程序规定
  • 高级人民法院党组书记级别
  • 纳税人不办税务许可证
  • 异地可以打印银行清单吗?
  • 形容有待完善的词语
  • 建筑企业应如何选择适用的质量体系标准
  • 四川残疾人社保补贴
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设