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

Vue使用Vue Router路由:通过URL传递与获取参数

Vue Router 路由实际上就是一种映射关系。例如,多个选项卡之间的切换就可以使用路由功能来实现。在切换时,根据鼠标的点击事件显示不同的页面内容,这相当于事件和事件处理程序之间的映射关系。在实际的开发中,经常需要通过URL来传递参数,同时在 JavaScript 脚本中需要获取URL中的参数。下面将介绍 Vue 项目中,如何通过 URL 对参数进行传递与获取。

1、传递 URL 参数

(1)配置路由信息:

const routes = [{path: '/course/detail/:id',name: 'courseDetail',component: CourseDetail,meta: {title: '课程详情'}}
]

该路由配置的 path 值为: '/course/detail/:id',其中 :id 为参数的占位符,需要通过 params:{} 方式赋值 。有效地址例如:/course/detail/1 或者 /course/detail/2 等。

(2)URL参数的传递:

<router-link :to="{ name: 'courseDetail', params: { id: course.id }, query: { name: course.name, teacher: course.teacher } }">预览</router-link>

参数说明:

params 参数:会在URL中显示出传参的值,刷新页面不会丢失参数,使用该方式传值的时候,需要在路由提前配置好参数,如上述代码:path: '/course/detail/:id',其中 :id 为参数的占位符。

query 参数:传递的参数会拼接在地址栏中(?name=xxx&teacher=xxx),刷新页面不会丢失参数,使用 path 和 name 都可以。

执行结果:

 

2、获取 URL 参数

(1)模板中获取URL参数:

<!-- 获取 params 对象中的参数 -->
<p>课程编号:{{ $route.params.id }}</p><!-- 获取 query 对象中的参数 -->
<p>课程名称:{{ $route.query.name }}</p>
<p>课程讲师:{{ $route.query.teacher }}</p>

(2)JavaScript 中获取URL参数(Vue 2.0):

this.id = this.$route.params.Id || 0; //获取 params 对象中的参数
this.name = this.$route.query.name;   //获取 query 对象中的参数

(3)JavaScript 中获取URL参数(Vue 3.0 ):

import { useRoute } from 'vue-router';//获取URL参数
const route = useRoute();
let id = route.params.id || 0; //获取 params 对象中的参数
let name = route.query.name;   //获取 query 对象中的参数
let teacher = route.query.teacher;//打印参数
console.log("获取URL参数id:", id);
console.log("获取URL参数name:", name);
console.log("获取URL参数teacher:", teacher);

执行结果:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 内网穿透(当使用支付宝沙箱的时候需要内网穿透进行回调)
  • 【MySQL】库的相关操作
  • Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度
  • ES 索引或索引模板
  • 第五章 继承、多态、抽象类与接口 (5)
  • Webpack 和 Rollup、Parcel 区别
  • C++vector类的模拟实现
  • 为什么网上Python爬虫教程这么多,但是做爬虫的这么少呢?
  • 【6】AT32F437 OpenHarmony轻量系统移植教程(3)
  • filebeat采集挂载出来的/home/Logs下的日志过程
  • 『玉竹』基于Laravel 开发的博客、微博客系统和Android App
  • spring中对于servlet API的封装---springWeb
  • 计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-18
  • 行人动作行为识别系统源码分享
  • 自定义类型
  • Android Studio:GIT提交项目到远程仓库
  • javascript 哈希表
  • JavaScript设计模式系列一:工厂模式
  • k8s 面向应用开发者的基础命令
  • leetcode386. Lexicographical Numbers
  • mysql_config not found
  • React Transition Group -- Transition 组件
  • REST架构的思考
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SQLServer之索引简介
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 构造函数(constructor)与原型链(prototype)关系
  • 力扣(LeetCode)357
  • 聊聊sentinel的DegradeSlot
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 容器镜像
  • ​iOS实时查看App运行日志
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​探讨元宇宙和VR虚拟现实之间的区别​
  • #### golang中【堆】的使用及底层 ####
  • #php的pecl工具#
  • $.ajax中的eval及dataType
  • (20)docke容器
  • (52)只出现一次的数字III
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (分布式缓存)Redis哨兵
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (六)vue-router+UI组件库
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (十六)串口UART
  • (十三)MipMap
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • (转)C#调用WebService 基础
  • .NET gRPC 和RESTful简单对比
  • .net MVC中使用angularJs刷新页面数据列表
  • .net 中viewstate的原理和使用
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET简谈设计模式之(单件模式)