vue路由跳转携带参数的方式总结

 更新时间:2022年10月17日 08:59:26   作者:糖糖246  
我们知道在vue中每个页面都需要在路由中声明,下面这篇文章主要给大家介绍了关于vue路由跳转携带参数的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

一、<router-link> 方式跳转

1. 携带query参数

 <router-link to="/detail?id=001&title=消息001"> 消息001</router-link>
<router-link :to="{
        name: 'detail',
        path: '/detail', 
        query: {
                id: '001',
                title: '消息001'
        }
}"

注:此种方式不需要动路由配置,to属性对象形式中name和path二选一即可 。

此时浏览器地址栏地址为:http://localhost:8080/detail?id=001&title=消息001 

接收参数为:

$route.query.xxx

2. 携带params参数 

<router-link :to="`/detail/${id}/${title}`"> {{ title }} </router-link> 
<router-link :to="{
        name: 'detail',
        path: '/detail',
        params: {
                id: '001',
                title: '消息001'
        }
}"

注意:此种方式需要修改路由配置,且to的对象形式中只能用name匹配路由

{
       name: 'detail',
        path: '/detail/:id/:title'
        component: Detail
} 

此时浏览器地址栏地址为:http://localhost:8080/detail/001/消息001 

接收参数为:

$route.params.xxx

3.将参数转换为props属性

我们可以通过配置路由时的props属性,将params/query携带的参数,在组件中用props属性来接收,这样用时可以直接使用,就不需要$route.params.xxx/$route.query.xxx的形式了

配置方式:

{
    name:'detail',
    path:'/detail',
    component: Detail,
 
    /**
    方式一,值为对象,对象中的key-value会以props的形式传递给Detail组件,
    但是传递的值都是一样的,不推荐
    props: {
         id: '123',
         title: '消息001',
    },
    **/
 
    /**
    方式二,值为布尔值,若布尔值为真,就会把该组件收到的所有params参数,以props的形式传式传递给Detail组件, 但之这种方式只适用于params参数
    props: true,
    **/
 
    /**
    方式三,值为函数,内置传参$route,可以使用结构赋值形式
    **/
    props({query}){
        return {id: query.id, title: query.title}
    },

还学到了一种结构再结构的形式

props({ query: { id, title } }) {
        return { id, title }

二、编程方式跳转路由

通过编写代码的方式使路由发生跳转,跳转方式有两种,一种是push,一种是replace,他们都是$router上的函数(存在于VueRouter原型上)。此时携带参数方式为:

this.$router.push({
    name:  'detail',
    params: {
        id: xxx,
        title: xxx
    },
    /**
    query: {
        id: xxx,
        title: xxx
    }
    **/
})
 
this.$router.replace({
    name:  'detail',
    params: {
        id: xxx,
        title: xxx
    },
    /**
    query: {
        id: xxx,
        title: xxx
    }
    **/
})          

注意:不论何种方式跳转,想要在标签中接收到不同的params就需要在路由配置时用/:占位,不然只能接收到第一次打开时带过来的参数。

总结

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

相关文章

  • vue3.0中使用Element-Plus中Select下的filter-method属性代码示例

    vue3.0中使用Element-Plus中Select下的filter-method属性代码示例

    这篇文章主要给大家介绍了关于vue3.0中使用Element-Plus中Select下的filter-method属性的相关资料,Filter-method用法是指从一组数据中选择满足条件的项,文中通过图文以及代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • 如何理解Vue的v-model指令的使用方法

    如何理解Vue的v-model指令的使用方法

    这篇文章主要介绍了如何理解Vue的v-model指令的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • 利用Vue.js实现checkbox的全选反选效果

    利用Vue.js实现checkbox的全选反选效果

    最近用vue做了两个项目,都需要实现全选反选的功能,所以想着记录下分享给大家,方便自己或者有需要的朋友们参考讲学习,所以下面这篇文章主要介绍了利用Vue.js实现checkbox的全选反选效果,需要的朋友可以一起来学习学习。
    2017-01-01
  • 在vue中给列表中的奇数行添加class的实现方法

    在vue中给列表中的奇数行添加class的实现方法

    今天小编就为大家分享一篇在vue中给列表中的奇数行添加class的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue路由跳转打开新窗口(window.open())和关闭窗口(window.close())

    vue路由跳转打开新窗口(window.open())和关闭窗口(window.close())

    这篇文章主要介绍了vue路由跳转打开新窗口(window.open())和关闭窗口(window.close())问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • ant design vue datepicker日期选择器中文化操作

    ant design vue datepicker日期选择器中文化操作

    这篇文章主要介绍了ant design vue datepicker日期选择器中文化操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • npm install sentry-cli失败的问题解决

    npm install sentry-cli失败的问题解决

    本文主要介绍了npm install sentry-cli失败的问题解决,文章首先描述了问题现象,然后分析了问题的原因,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • 一文带你了解threejs在vue项目中的基本使用

    一文带你了解threejs在vue项目中的基本使用

    three.js是一个用于在Web上创建三维图形的JavaScript库,它可以用于创建各种类型的三维场景,包括游戏、虚拟现实、建筑和产品可视化等,下面这篇文章主要给大家介绍了关于如何通过一文带你了解threejs在vue项目中的基本使用,需要的朋友可以参考下
    2023-04-04
  • vue history模式刷新404原因及解决方法

    vue history模式刷新404原因及解决方法

    vue路由的URL有两种模式,一种是 hash,一种是history,下面这篇文章主要给大家介绍了关于vue history模式刷新404原因及解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Vue之生命周期函数详解

    Vue之生命周期函数详解

    这篇文章主要为大家介绍了Vue之生命周期函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11

最新评论