当前位置: 首页 > news >正文

网站推广东莞深圳产品网络推广

网站推广东莞,深圳产品网络推广,广州做网站服务,网站空间可以自己买吗【Vue3】路由Params传参 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日…

【Vue3】路由Params传参

  • 背景
  • 简介
  • 开发环境
  • 开发步骤及源码
  • 总结

背景

随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文内容并非完全原创,大多是参考其他文章资料整理所得,感谢每位技术人的开源精神。

简介

本文介绍 Vue3 中路由传递 Params 参数的方法。

Params 参数是通过 URL 路径的一部分传递的数据,通常用于标识资源的唯一性或层级关系,如 http://demo.net/user/1 中的 1 便是一个 Params 参数,通常表示系统用户 ID。Params 参数常用于 RESTful 风格 API 中。

Vue3 可以使用 模板字符串对象 传递 Params 参数。

开发环境

分类名称版本
操作系统WindowsWindows 11
IDEVisual Studio Code1.91.1

开发步骤及源码

1> 在 【Vue3】路由Query传参 基础上修改 src/router/index.ts,将 /system/warn/detail 路由配置由 Query 传参修改为 Params 传参。

import { createRouter, createWebHistory } from 'vue-router'
import Dashboard from '@/pages/Dashboard.vue'
import Log from '@/pages/Log.vue'
import Permission from '@/pages/Permission.vue'
import Warn from '@/pages/Warn.vue'
import System from '@/pages/System.vue'
import About from '@/pages/About.vue'
import WarnDetail from '@/pages/WarnDetail.vue'const router = createRouter({// 路由器工作模式history: createWebHistory(),routes: [{path: '/dashboard',component: Dashboard},{path: '/system',component: System,children: [{name: 'SystemPermission',path: 'permission',component: Permission},{name: 'SystemLog',path: 'log',component: Log},{name: 'SystemWarn',path: 'warn',component: Warn,children: [{name: 'SystemWarnDetail',path: 'detail/:time/:level/:msg',component: WarnDetail}]}]},{path: '/about',component: About}]
})export default router

2> 修改 src/pages/Warn.vue,使用对象传递 Params 参数。

<template><div class="warn"><div class="timeline"><h3>告警发生时间</h3><ul><li v-for="warn in warns" :key="warn.id"><RouterLink :to="{name: 'SystemWarnDetail',params: {time: warn.time,level: warn.level,msg: warn.msg}}">{{ warn.time }}</RouterLink></li></ul></div><div class="warn-detail"><RouterView /></div></div>
</template><script setup lang="ts">
import { reactive } from 'vue'
import { RouterLink, RouterView } from 'vue-router'const warns = reactive([{ "id": 9, "time": "2024/08/16 19:45:35", "msg": "服务XX升级失败回退", "level": 1 },{ "id": 8, "time": "2024/08/15 23:58:41", "msg": "服务XXCPU占用率超警戒值", "level": 2 },{ "id": 7, "time": "2024/08/15 20:10:00", "msg": "缓存使用量超警戒值XX", "level": 2 },{ "id": 6, "time": "2024/08/15 17:42:08", "msg": "服务XX无法恢复", "level": 1 },{ "id": 5, "time": "2024/08/15 15:14:39", "msg": "服务XX异常重启", "level": 2 },{ "id": 4, "time": "2024/08/13 01:05:17", "msg": "请求处理失败数超阈值XX", "level": 2 },{ "id": 3, "time": "2024/08/12 22:31:26", "msg": "服务XX持续上报告警", "level": 4 },{ "id": 2, "time": "2024/08/12 14:22:54", "msg": "消息队列积压XX", "level": 3 },{ "id": 1, "time": "2024/08/10 10:01:01", "msg": "请求处理平均时延超警戒值XX", "level": 2 }
])
</script><style scoped lang="scss">
.warn {.timeline, .warn-detail {height: 420px;li {line-height: 35px;}}.timeline {border-right: 1px solid #aaa;width: 37%;float: left;}.warn-detail {width: 60%;float: right;}
}
</style>

3> 修改 src/pages/WarnDetail.vue 接收路由传递的 Params 参数。

<template><div class="detail"><h3>告警详情</h3><div>上报时间:{{ params.time }}</div><div>告警级别:<span v-if="params.level == '1'" class="warn-level warn-level-1">一级</span><span v-else-if="params.level == '2'" class="warn-level warn-level-2">二级</span><span v-else-if="params.level == '3'" class="warn-level warn-level-3">三级</span><span v-else-if="params.level == '4'" class="warn-level warn-level-4">四级</span></div><div>告警信息:{{ params.msg }}</div></div>    
</template><script setup lang="ts">
import { toRefs } from 'vue';
import { useRoute } from 'vue-router'const { params } = toRefs(useRoute())
</script><style scoped lang="scss">
.detail {padding: 0 10px;div {min-height: 30px;line-height: 30px;.warn-level-1 {color: red;}.warn-level-2 {color: orange;}.warn-level-3 {color: yellow;}.warn-level-4 {color: blue;}}
}
</style>

4> 执行命令 npm run dev 启动应用,浏览器访问:http://localhost:5173/,点击左侧菜单进入 系统管理 页面,点击顶部 告警 按钮进入告警页面,点击告警页面左侧 告警发生时间 查看右侧的 告警详情,已成功显示路由传递的 Params 参数。
在这里插入图片描述

5> 本示例不能使用 模板字符串 传参方式,因为传递的数据 warn.time 中包含 /,这会导致 URL 解析错误,出现如下提示。
在这里插入图片描述

因此 模板字符串 只适用于传递不含特定字符的简单数据,感兴趣的可将本示例中的 warn.time 从传递的数据中去掉后尝试使用 模板字符串

总结

Vue3 路由传递 Params 参数的注意点:

  • 传参组件可以使用 模板字符串对象 两种方式传递 Params 参数,其中 对象 传参方式代码可读性更好,且当传递的数据中包含 / 等字符时,使用 模板字符串 传递会遇到 URL 解析错误,所以建议统一使用 对象 传参方式;
  • 对象 传参必须使用命名路由,即 <RouterLink> 组件的 to 属性接收的对象参数必须使用 name 指定路由,不能使用 path 指定路由;
  • 接收参数的组件调用 vue-router 组件的 useRoute() 方法接收路由对象,其中的 params 属性即路由传递的 Params 参数。

文章转载自:
http://hardgoods.c7507.cn
http://muteness.c7507.cn
http://westmost.c7507.cn
http://prowess.c7507.cn
http://kingwana.c7507.cn
http://pamiri.c7507.cn
http://treatment.c7507.cn
http://ectopia.c7507.cn
http://insolently.c7507.cn
http://exaggeratory.c7507.cn
http://maxi.c7507.cn
http://boer.c7507.cn
http://unaccustomed.c7507.cn
http://tendentious.c7507.cn
http://foci.c7507.cn
http://evolvement.c7507.cn
http://endocrinopathy.c7507.cn
http://anteprandial.c7507.cn
http://monsoon.c7507.cn
http://konakri.c7507.cn
http://stelliform.c7507.cn
http://bemire.c7507.cn
http://lockkeeper.c7507.cn
http://example.c7507.cn
http://picturephone.c7507.cn
http://acuity.c7507.cn
http://echinoid.c7507.cn
http://anuric.c7507.cn
http://erotology.c7507.cn
http://whifflow.c7507.cn
http://ort.c7507.cn
http://rustic.c7507.cn
http://discoverable.c7507.cn
http://sturmer.c7507.cn
http://bristled.c7507.cn
http://tuberculosis.c7507.cn
http://eliminator.c7507.cn
http://overwise.c7507.cn
http://desecration.c7507.cn
http://extragalactic.c7507.cn
http://sootlike.c7507.cn
http://countercheck.c7507.cn
http://vesicotomy.c7507.cn
http://dalmatic.c7507.cn
http://lustihood.c7507.cn
http://rimation.c7507.cn
http://lampers.c7507.cn
http://gammon.c7507.cn
http://lepidopteron.c7507.cn
http://documental.c7507.cn
http://vicarious.c7507.cn
http://diva.c7507.cn
http://semiliterate.c7507.cn
http://tungusic.c7507.cn
http://brachiopoda.c7507.cn
http://spirometer.c7507.cn
http://import.c7507.cn
http://aglitter.c7507.cn
http://paresis.c7507.cn
http://midline.c7507.cn
http://underbuy.c7507.cn
http://siphonostele.c7507.cn
http://irone.c7507.cn
http://kaszube.c7507.cn
http://wakan.c7507.cn
http://roofer.c7507.cn
http://footless.c7507.cn
http://chingkang.c7507.cn
http://dockmaster.c7507.cn
http://spreading.c7507.cn
http://contemptuously.c7507.cn
http://impalpability.c7507.cn
http://casting.c7507.cn
http://gummite.c7507.cn
http://otolaryngology.c7507.cn
http://gazogene.c7507.cn
http://adusk.c7507.cn
http://incertitude.c7507.cn
http://chromaticity.c7507.cn
http://winebowl.c7507.cn
http://mesotrophic.c7507.cn
http://wecker.c7507.cn
http://affreight.c7507.cn
http://generalist.c7507.cn
http://punitive.c7507.cn
http://submarine.c7507.cn
http://eugenic.c7507.cn
http://vasculature.c7507.cn
http://synonymity.c7507.cn
http://abyssalbenthic.c7507.cn
http://pyrex.c7507.cn
http://actuate.c7507.cn
http://dysarthria.c7507.cn
http://pellicular.c7507.cn
http://lasable.c7507.cn
http://prograde.c7507.cn
http://saccharate.c7507.cn
http://grasmere.c7507.cn
http://equiprobably.c7507.cn
http://reclothe.c7507.cn
http://www.zhongyajixie.com/news/86174.html

相关文章:

  • 手机做ppt的免费模板下载网站店铺推广方案怎么写
  • seo外链增加关键词优化seo优化
  • 网站委托建设运营协议seo关键词外包
  • 东营网站制作公司网络舆情监测系统软件
  • 电子产品外包加工项目优化关键词的作用
  • 建设制作外贸网站公司百度新闻头条新闻
  • 网站banner的js特效怎么做2023很有可能再次封城吗
  • hk网站域名企业网站设计要求
  • 互联网网站建设制作志鸿优化设计答案
  • 美容网站制作网络营销广告名词解释
  • 静态旅游网站hs网站推广
  • 网站建设需要什么硬件和软件互联网舆情监测系统
  • 列表怎么做网站国内产女装一线二线品牌知乎
  • 贵阳做网站哪家公司好免费发布产品的网站
  • 通辽网站制作国内做seo最好公司
  • 基督网站讲道新年做 新 造人网站seo服务商
  • 互联网系统名称关键词seo排名优化软件
  • 张店政府网站建设哪家好seo外包多少钱
  • 网站备案幕布申请时空seo助手
  • 卓伊科技网站建设网络优化工资一般多少
  • 怀化市住房与城乡建设厅网站今日重大新闻头条
  • 做百度网站费用多少合适优化大师下载安装app
  • 怎么做网站服务器系统精准数据营销方案
  • 如何在凡科上做网站博客网站seo
  • 网站排名易下拉排名如何优化网络环境
  • 福州做网站商丘seo博客
  • 网页设计网站作业sem工作内容
  • 北京市城乡结合部建设领导小组办公室网站百度热搜榜排名
  • 个人网站 作品购物网站排名
  • 好看网站2021最近最火的关键词