详解Vue如何通过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>该路由配置的 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);执行结果:

到此这篇关于详解Vue如何通过URL传递与获取参数的文章就介绍到这了,更多相关Vue URL传递与获取参数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
vue3中通过遍历传入组件名称动态创建多个component 组件
这篇文章主要介绍了vue3中通过遍历传入组件名称动态创建多个component 组件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-03-03
vue2实现directive自定义指令的封装与全局注册流程
自定义指令是对普通DOM元素进行的底层操作,它是一种有效的的补充和扩展,不仅可以用于定义任何的dom操作,并且是可以复用的,下面这篇文章主要给大家介绍了关于vue2实现directive自定义指令的封装与全局注册流程的相关资料,需要的朋友可以参考下2023-02-02
Vue3中Watch、Watcheffect、Computed的使用和区别解析
Watch、Watcheffect、Computed各有优劣,选择使用哪种方法取决于应用场景和需求,watch 适合副作用操作,watchEffect适合简单的自动副作用管理,computed 适合声明式的派生状态计算,本文通过场景分析Vue3中Watch、Watcheffect、Computed的使用和区别,感兴趣的朋友一起看看吧2024-07-07
Vue @click.stop阻止事件向祖先元素传递方式(事件冒泡)
在Vue中,使用@click.stop修饰符可以阻止事件向父级元素传递,从而实现单击父级元素执行函数,而单击子元素不执行函数的需求2025-02-02


最新评论