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

西安 网站 公司seo网站结构优化的方法

西安 网站 公司,seo网站结构优化的方法,河北永生建筑工程网站,网站建设的网页【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://www.yidumall.com/news/105651.html

相关文章:

  • 好多词网站seo运营招聘
  • 做中英文版的网站需要注意什么seo三人行论坛
  • jsp python 网站开发站长seo推广
  • 社交网站做强什么是软文推广
  • 任丘 做网站四川游戏seo整站优化
  • 网站数据库管理系统百度长尾关键词挖掘工具
  • 如何做汉服杭州seo排名收费
  • 工体做网站的公司自助建站的优势
  • 免费开源网站顺德搜索seo网络推广
  • 做电子购物网站需要申请网站建设平台软件
  • 建网站工具裂变营销
  • 如何做汽车团购网站整站多关键词优化
  • 视觉营销网站建设规划分析市场调研的基本流程
  • 网站 授权书高端建站
  • wordpress 新打开空白整站优化深圳
  • 网站编辑做图片用什么谷歌排名网站优化
  • b2c电商网站对比seo成功的案例和分析
  • 私人可以做慈善网站吗中视频自媒体平台注册
  • 做网站设计的长宽一般是多少企业网站排名优化价格
  • 如何防护恶意网站上海站群优化公司
  • 开个网站做代理服务器百度推广后台登录入口官网
  • 如何做好网站首页建设seo全网营销公司
  • 沈阳做网站在哪2022智慧树互联网与营销创新
  • 苏州吴江太湖新城建设局网站人员优化是什么意思
  • 襄樊网站建设石家庄网站建设seo公司
  • 上海模板网站建设请简述网络营销的特点
  • 网站快照怎么更新免费网络推广平台
  • 个人网站必须备案吗西安专业做网站公司
  • 江苏建站百度应用app
  • 让别人做网站怎样才安全凡科建站的优势