Vue中的路由跳转及传参的多种方法小结

 更新时间:2023年11月21日 10:09:20   作者:宝子向前冲  
这篇文章主要介绍了Vue中的路由跳转及传参的多种方法小结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

路由跳转的三种方法

1.path路径跳转

传值可以使用params传值和query传值 (缺点:不能传引用数据类型-数组,对象等)

//写法1
<router-link to="/artlist">小说列表</router-link> 
//router-link解析出来其实是a标签
//路由配置
export default new VueRouter({
  routes: [
    {
      path: "/artlist",
      component: ArtList,
    }
  ]
});
//写法2
<router-link :to="path1">小说列表</router-link> 
//写法3
<router-link :to="'/artlist'">小说列表</router-link> 
...
data() {
	return{
		path1:'/artlist'
	}
}
//但是还需要进行路由配置
export default new VueRouter({
  routes: [
    {
      path: "/artlist",
      component: ArtList,
    }
  ]
});

2.编程式路由 this.$router.push()

 (最常用的,不受时机、条件的限制)。
传值可以用params 传值和query传值
(优点:可以传基本数据类型和数组,对象)

jumpHome() {
        this.$router.push({
            path:"/home",
            query:{
            	id:this.id
            }
        })
      }
 ...
 //接收值如果进入另一个页面,一般在created中接收
 this.$route.query.id
 //路由配置
 { 
     path: "/home", 
     component: ()=>import("../Home")
 }
  //或者name和params搭配,接收值 this.$route.params.id

3.命名式路由跳转(name)

传值可以使用params和query传值
(优点:可以传基本数据类型和数组,对象)

<router-link :to="{name:'shop',query:{city:cityObj}}">购物车</router-link> 
...
//路由配置
{
	path:'/shop',
	//该path路径不能少。因为命名式路由跳转是通过name找到该path
	name:'shop',
	component:Shop
}

路由传参的三种方法

一、params传参

this.$router.push({ 
	name:"admin",    
	//这里的params是一个对象,id是属性名,item.id是值(可以从当前组件或者Vue实例上直接取) 
	params:{id:item.id} 
}) 
//这个组件对应的路由配置 
{  
	//组件路径 
	path: '/admin',  
	//组件别名 
	name: 'admin',  
	//组件名 
	component: Admin, 
} 

通过params传递参数,如果我们想获取 id 的参数值,可以通过 this.$route.params.id 这种方式来打印出来就可以得到了;

注意:获取参数的时候是 $route,跳转和传参的时候是 $router

二、路由属性配置传参:

this.$router.push({
	name:"/admin/${item.id}", 
}) 
//这个组件对应的路由配置 
{   
	//组件路径 
	path: '/admin:id',   
	//组件别名 
	name: 'admin',   
	//组件名 
	component: Admin, 
}

通过路由属性配置传参我们可以用 this.$route.params.id 来获取到 id 的值,

注意: this. $router.push 方法里面路径带的是值,路由配置项那里带的是变量名(属性名)来实现的对应;

以上两种传参方式基本上可以理解为 ajax 中的 post 请求方式,参数都是不可见的,但是上面两种方法都有一个弊端,就是当页面刷新了是获取不到参数值的,那么有没有一种方法是页面刷新之后参数依然存在呢?

三、query传参

this.$router.push({ 
	name:"/admin",     
	query:{id:item.id} 
}) 
//这个组件对应的路由配置 
{   
	//组件路径 
	path: '/admin',   
	//组件别名 
	name: 'admin',   
	//组件名 
	component: Admin, 
}

第三种方式是用 query 来传参,这种方式是可以解决页面刷新参数消失问题的,这种方式可以理解为是 ajax 中的 get 方法,参数是直接在 url 后面添加的,参数是可见的,所以解决页面刷新参数消失问题建议使用此方法来解决;

区别

(1)params传参

  • 只能用 name,不能用 path。
  • 地址栏不显示参数名称 id,但是有参数的值。

(2)query传参

  • name 和 path 都能用。用 path 的时候,提供的 path 值必须是相对于根路径的相对路径,而不是相对于父路由的相对路径,否则无法成功访问。
  • 地址栏显示参数格式为?id=0&code=1

到此这篇关于Vue中的路由跳转及传参的多种方法的文章就介绍到这了,更多相关vue路由跳转传参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue+elementUI实现表单和图片上传及验证功能示例

    vue+elementUI实现表单和图片上传及验证功能示例

    这篇文章主要介绍了vue+elementUI实现表单和图片上传及验证功能,结合实例形式分析了vue+elementUI表单相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • 详解Vue中如何避免滥用watch

    详解Vue中如何避免滥用watch

    这篇文章主要为大家详细介绍了Vue中滥用watch带来的问题以及如何解决,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • vue 指令版富文本溢出省略截取示例详解

    vue 指令版富文本溢出省略截取示例详解

    这篇文章主要为大家介绍了vue 指令版富文本溢出省略截取示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • vue 实现拖拽动态生成组件的需求

    vue 实现拖拽动态生成组件的需求

    这篇文章主要介绍了vue 如何实现拖拽动态生成组件的需求,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下
    2021-05-05
  • vue项目在线上服务器访问失败原因分析

    vue项目在线上服务器访问失败原因分析

    这篇文章主要介绍了vue项目在线上服务器访问失败原因分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • Vue组件Draggable实现拖拽功能

    Vue组件Draggable实现拖拽功能

    这篇文章主要为大家详细介绍了Vue组件Draggable实现拖拽功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • vuejs2.0实现一个简单的分页示例

    vuejs2.0实现一个简单的分页示例

    本篇文章主要介绍了vuejs2.0实现一个简单的分页示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 利用vue3自己实现计数功能组件封装实例

    利用vue3自己实现计数功能组件封装实例

    组件(Component) 是Vue.js最强大的功能之一,组件可以扩展 HTML 元素,封装可重用的代码,这篇文章主要给大家介绍了关于利用vue3自己实现计数功能组件封装的相关资料,需要的朋友可以参考下
    2021-09-09
  • vue2.0 watch里面的 deep和immediate用法说明

    vue2.0 watch里面的 deep和immediate用法说明

    这篇文章主要介绍了vue2.0 watch里面的 deep和immediate用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • vite项目配置less全局样式的实现步骤

    vite项目配置less全局样式的实现步骤

    最近想实现个项目,需要配置全局less,本文主要介绍了vite项目配置less全局样式的实现步骤,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02

最新评论