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

  • 微信怎么取消做对方监护人(微信怎么能取消)

    微信怎么取消做对方监护人(微信怎么能取消)

  • 小米手机wifi打开自动关闭(小米手机wifi打不开修一下多少钱)

    小米手机wifi打开自动关闭(小米手机wifi打不开修一下多少钱)

  • wps分节符在哪(wpsword分节符)

    wps分节符在哪(wpsword分节符)

  • 微信上有一把锁是啥意思(微信上有一把锁是什么意思)

    微信上有一把锁是啥意思(微信上有一把锁是什么意思)

  • 抖音怎么设置让别人下载自己的作品(抖音怎么设置让别人看不到我在线)

    抖音怎么设置让别人下载自己的作品(抖音怎么设置让别人看不到我在线)

  • 抖音可以设置不让评论吗(抖音可以设置不看直播吗)

    抖音可以设置不让评论吗(抖音可以设置不看直播吗)

  • 微信有扫描功能吗(如何制作微信二维码)

    微信有扫描功能吗(如何制作微信二维码)

  • 卖家收到退货后迟迟不处理退款(卖家收到退货后迟迟不处理退款怎么投诉)

    卖家收到退货后迟迟不处理退款(卖家收到退货后迟迟不处理退款怎么投诉)

  • 为什么不能转发别人的QQ动态(空间为什么不能转发)

    为什么不能转发别人的QQ动态(空间为什么不能转发)

  • 目前应用最广泛的计算机是(目前应用最广泛的付费搜索引擎推广模式是)

    目前应用最广泛的计算机是(目前应用最广泛的付费搜索引擎推广模式是)

  • 苹果手表出现红色叹号(苹果手表出现红色苹果logo)

    苹果手表出现红色叹号(苹果手表出现红色苹果logo)

  • 微信被对方删了加不上(微信被对方删了怎么知道)

    微信被对方删了加不上(微信被对方删了怎么知道)

  • 抖音上拉黑对方知道吗(抖音上拉黑对方他知道吗?)

    抖音上拉黑对方知道吗(抖音上拉黑对方他知道吗?)

  • word不显示表格框线(word不显示表格线)

    word不显示表格框线(word不显示表格线)

  • 华为mate30有没有指示灯(华为mate30有没有双系统)

    华为mate30有没有指示灯(华为mate30有没有双系统)

  • 手机淘宝怎么实名认证(手机淘宝怎么进行实名认证)

    手机淘宝怎么实名认证(手机淘宝怎么进行实名认证)

  • office2010无法显示剪贴画(office图标)

    office2010无法显示剪贴画(office图标)

  • 淘宝的闲鱼平台在哪里(淘宝上面的闲鱼怎么样)

    淘宝的闲鱼平台在哪里(淘宝上面的闲鱼怎么样)

  • 苹果刷机后可清除ld吗(苹果刷机会清空数据吗)

    苹果刷机后可清除ld吗(苹果刷机会清空数据吗)

  • 快手怎么查历史关注(快手怎么查历史记录)

    快手怎么查历史关注(快手怎么查历史记录)

  • word怎么设置标题等级(word怎么设置标题级别)

    word怎么设置标题等级(word怎么设置标题级别)

  • arcgis计算面积(arcgis计算面积保留两位小数)

    arcgis计算面积(arcgis计算面积保留两位小数)

  • 联想笔记本电脑vt开启教程(联想笔记本电脑官网旗舰店)

    联想笔记本电脑vt开启教程(联想笔记本电脑官网旗舰店)

  • JavaScript注册监听事件与清除监听事件(js怎么注册)

    JavaScript注册监听事件与清除监听事件(js怎么注册)

  • 劳务税是什么 和个税的区别
  • 小规模纳税人缴纳增值税怎么算
  • 应交税费应交增值税转出未交增值税是什么意思
  • 个人所得税汇算清缴情况报告
  • 个人所得税应补税额怎么办
  • 结转抵扣
  • 预付材料购货款计入什么科目
  • 计提坏账准备的做法体现了什么的信息质量要求
  • 普通增值税发票是否可以抵扣?
  • 机票的差额发票可以报销吗
  • 垫付被骗客服承诺退款
  • 事业编人员贷款
  • 预缴增值税附加税怎么算
  • 会计中借方和贷方怎么理解
  • 产品置换广告费
  • 月末结转所有收入类账户
  • 营改增对资产负债表的影响
  • 普通发票商品名称错了一个字
  • 代开的专票怎么做账?
  • 五证合一后地税编码怎么查
  • 风险纳税人如何解除
  • 公司员工出差补贴与差旅费报销制度
  • 保障性住房享有怎么取消儿子的名字呀
  • 经营租赁固定资产折旧计入什么科目
  • 金税盘基本信息设置
  • 小规模企业所得税按季度还是按年
  • 本月没有发生额,月末怎么结账
  • 税法中的视同行为如何开具发票
  • 代缴社保怎么做账
  • 美团佣金收费标准结构图
  • 国有企业上缴利润的账务处理怎么处理?
  • 忘记电脑开机密码怎么打开电脑
  • 赠品没有收到
  • 在linux系统中拥有
  • 冲红的会计分录
  • 怎么做好零售
  • RuntimeError: CUDA out of memory 已解决
  • 期间费用计入产品成本的费用吗
  • vue docx-preview实现docx文件在线预览
  • javascript表单验证和控制类
  • php类型约束用法有哪些
  • 借入资金会计科目
  • 帝国cms使用手册
  • 直接转销法能不能用
  • 深入理解jvm第三版pdf百度云
  • 短期借款利息怎么做账
  • 外企可以申请高新技术
  • 个人工资薪金如何零申报
  • 计提折旧的固定资产平均总值怎么算
  • 其他业务支出借方增加还是减少
  • 材料采购合同要点
  • 超过诉讼时效的法律后果
  • 暂估应付账款的科目编码
  • 进项票超期未认证怎么办
  • sql语句中单引号怎么打
  • sql修改表增加列
  • 读取mysql binlog
  • win9怎么升级win10
  • win xp系统安装
  • xp系统ie浏览器怎么升级
  • linux命令大全chm版
  • winxp系统怎么安装
  • linux无法登陆
  • win7旗舰版虚拟光驱下载
  • win7宽带连接错误813怎么解决办法
  • perl uc,lc,ucfirst,lcfirst大小写转换函数
  • windows visual studio openGL开发环境配置
  • javascript闭包详解
  • javascript高级程序设计电子版
  • js简单网速测试方法
  • 税务稽查案件办案程序规定
  • 年收入12w
  • 国家税务局查验发票显示网络异常
  • 2020百望税控盘最新系统
  • 哪些润滑油属于危险品类
  • 纳税申报期过了怎么申报
  • 四川医保增员网上怎么操作流程图
  • 合伙企业如何申报税务报表
  • 申报的销项税额怎么计算
  • 辽宁税务局代码是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设