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

  • qq老掉线怎么回事(qq老掉线)(qq老掉线怎么回事)

    qq老掉线怎么回事(qq老掉线)(qq老掉线怎么回事)

  • 美团众包要满100才能提现吗(美团众包要满几岁才能跑)

    美团众包要满100才能提现吗(美团众包要满几岁才能跑)

  • 腾讯会议成员顺序怎么排的(腾讯会议成员顺序)

    腾讯会议成员顺序怎么排的(腾讯会议成员顺序)

  • wifi网络连接受限(上网神器wifi自动连接)

    wifi网络连接受限(上网神器wifi自动连接)

  • oppor17怎么关机的(oppor17怎么关机和开机)

    oppor17怎么关机的(oppor17怎么关机和开机)

  • 微信换绑手机号间隔(微信换绑手机号了,原来的手机号还能注册吗)

    微信换绑手机号间隔(微信换绑手机号了,原来的手机号还能注册吗)

  • 华为手机屏幕时长怎么设置(华为手机屏幕时间不见了怎么弄回来)

    华为手机屏幕时长怎么设置(华为手机屏幕时间不见了怎么弄回来)

  • 微信审核身份证要多久(微信身份证审核需要多长时间)

    微信审核身份证要多久(微信身份证审核需要多长时间)

  • 电脑熄屏了键盘可以唤醒吗(为什么电脑一锁屏以后键盘就用不起了)

    电脑熄屏了键盘可以唤醒吗(为什么电脑一锁屏以后键盘就用不起了)

  • 微信为什么总是自动退出(微信为什么总是自动退出登录)

    微信为什么总是自动退出(微信为什么总是自动退出登录)

  • 小米手机人脸识别为什么突然识别不到了(小米手机人脸识别怎么删除)

    小米手机人脸识别为什么突然识别不到了(小米手机人脸识别怎么删除)

  • y85a和y85有什么区别(vivo y85和vivo y85a一样吗)

    y85a和y85有什么区别(vivo y85和vivo y85a一样吗)

  • 罗马仕充电宝鼓包了还能用吗(罗马仕充电宝鼓了还能用吗)

    罗马仕充电宝鼓包了还能用吗(罗马仕充电宝鼓了还能用吗)

  • qq置顶什么意思(qq置顶顺序是按照什么来的)

    qq置顶什么意思(qq置顶顺序是按照什么来的)

  • 苹果手机铃声闪光设置(苹果手机铃声闪烁是什么音乐)

    苹果手机铃声闪光设置(苹果手机铃声闪烁是什么音乐)

  • 360管理员用户名是什么(360管理员用户名是什么意思)

    360管理员用户名是什么(360管理员用户名是什么意思)

  • 10gbps是多少速度(10mbps是多少kbps)

    10gbps是多少速度(10mbps是多少kbps)

  • oppoa5微信能刷脸支付么(oppo手机微信有刷脸支付功能吗)

    oppoa5微信能刷脸支付么(oppo手机微信有刷脸支付功能吗)

  • 备忘录怎么弄成黑色背景(备忘录怎么弄成文件微信发送)

    备忘录怎么弄成黑色背景(备忘录怎么弄成文件微信发送)

  • 如何识别gif的出处(识别gif找原视频)

    如何识别gif的出处(识别gif找原视频)

  • oppo怎么退出耳机模式(op手机怎么退出耳机)

    oppo怎么退出耳机模式(op手机怎么退出耳机)

  • 怎么用话费买东西(如何用话费购买东西)

    怎么用话费买东西(如何用话费购买东西)

  • B站介绍(bilibili网站说明等)(b站介绍ppt)

    B站介绍(bilibili网站说明等)(b站介绍ppt)

  • ios实况图怎么发给别人(iphone 实况照片怎么发)

    ios实况图怎么发给别人(iphone 实况照片怎么发)

  • 西瓜视频怎么投屏(西瓜视频怎么投屏到微光)

    西瓜视频怎么投屏(西瓜视频怎么投屏到微光)

  • 苹果屏幕原彩是什么(苹果屏幕原彩是什么怎么打开)

    苹果屏幕原彩是什么(苹果屏幕原彩是什么怎么打开)

  • app store无法购买(app store无法购买下载不了陌陌)

    app store无法购买(app store无法购买下载不了陌陌)

  • 年终奖怎么计税的
  • 自然人独资是小规模纳税人吗
  • 食堂临聘人员的管理、考核
  • 税收制度具体内容
  • 契税印花税的会计分录怎么写
  • 员工离职如何申请赔偿
  • 售后回购融资租赁合同
  • 缴纳增值税金税率是多少
  • 增值税普通发票需要交税吗
  • 增值税哪些可以全额抵扣
  • 税局会例行检查吗
  • 转让资产使用权收入属于什么收入
  • 营改增后房地产企业增值税如何核算
  • 价内税与价外税的计算公式
  • 消费税征收范围包括
  • 专票金额怎么计算
  • 500万以下固定资产最新政策
  • 小企业报表为什么勾选不到小型微利企业
  • 购买软件会计账务处理
  • 小微企业按季度报送财务报表
  • 股票派息后会除权吗
  • 餐饮发票忘记作废也没冲红怎么处理?
  • 发票上开的购物卡,入帐时怎么写摘要?
  • 房地产开发公司注册资金要求
  • 不含税进货价
  • windows10如何开机启动软件
  • 常见内存大小
  • 金税盘技术维护费可以抵扣吗
  • Win11/Win10 21H2 正式版发布前,微软再次推送可靠性补丁更新 KB4023057
  • gnaupdaemon.exe是什么
  • php 编程
  • php有很多流行的mvc框架,这些框架可以
  • linux安装配置ftp
  • 奥卡拉国家森林公园
  • 我找到了这个
  • 微信小程序小窗口
  • 2023前端面试题目
  • @enable
  • 收到承兑汇票怎么操作
  • 出口未申报如何处理
  • 免税农产品怎么抵扣进项税
  • 会计成本确认
  • mysql的常用命令
  • 入库验收过程中可能出现哪些问题,该如何处理
  • 计提制造费用
  • 现金流量表里支付的各项税费包括什么
  • 待抵扣进项税如何在营运资金
  • 出售金融资产计入
  • 未开票的收入如何申报增值税
  • 长期待摊费用摊销会计分录
  • 借款怎么入会计分录
  • 账本登错账怎么修改
  • 固定资产赠送后怎么做凭证
  • 汽车高速公路收费卡
  • 资产质量的相对性举例说明
  • 微软9月22
  • w10预览版21343下载
  • win10隐藏文件怎么隐藏
  • vista win
  • Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
  • bootcamp安装windows一直小白杠
  • ubuntu能玩什么
  • win8系统如何恢复出厂设置
  • mce文件是什么软件
  • win10更新中重启会怎么样
  • cocos2dx tableview基础:实现多图片的滑动显示
  • windows升级node版本
  • win10自带终端
  • perl ne
  • Unity3D游戏开发pdf
  • unity系统错误
  • python3的urllib
  • unity3d基础教程
  • unity常用api
  • Unity3D游戏开发标准教程
  • Python 正则表达式入门(初级篇)
  • jquery ztree实现模糊搜索功能
  • 一个绿色的球英语怎么读
  • 商标注册图形查询
  • 吉林省职称查询入口
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设