vue路由传参的方法,值得看一看

vue路由传参的方法

最近小编在公司也是在做vue项目,所以在有些功能需求上需要vue路由传参,所以写了这边博文,对于vue路由传参的方法做了小总结。

第一种:使用router的name属性也就是params来传递参数

这个方法有一个bug就是当你传参过去的时候,再次刷新页面时参数就会丢失。解决方法下边会说到。

1:首先需要在router/index.js里边配置每个页面的路径,name属性,看例子:
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)
export const constantRouterMap = [{
        path: '/login/:userId/:id',
        name:'Message',    //就是要在路由配置里边配置这个属性,用来知道你要跳转到那个页面的名字
    /***
     * 如果想做到页面刷新,参数不丢失,就必须在path后面加上这个参数
     * 但是这样做的话就会导致参数显示在url的后面,(在这一点上)跟query没什么区别了。
    *  多个参数也可以一直往后边追加
     */
        component: _import('login/index'),
        hidden: true
    },
    {
        path: '',
        component: Layout,
        redirect: 'caodouya',
        icon: 'caodouya',
        hidden: true,
        noDropDown: true,
        children: [{
            path: 'caodouya',
            name: '首页',
            component: _import('main/index'),
            meta: {
                title: 'caodouya',
                icon: 'caodouya',
                noCache: true
            }
        }]
    }
]

export default new Router({
    routes: constantRouterMap
})
2:在传值页面的写法:
//用这种方法传参,必须这么些,不能写path,否则你在取参数的时候this.$router.params.userId就是undefined.这是因为,params只能用name来引入路由,
this.$router.push({
    name:"'Message'",//这个name就是你刚刚配置在router里边的name
    params:{
          userId:"1313131"
    }
})
3:在取值页面的写法:
this.$route.params.userId

第二种:使用query来传递参数

1:在传值页面的写法:
this.$router.push({
    path:"/login",//这个path就是你在router/index.js里边配置的路径
    query:{
          userId:"1313131"
    }
})
2:在传值页面的写法:
第一种:
this.$router.currentRoute.query.userId
第二种:
this.$route.query.userId

三:使用vue里的标签来传递参数

1:在传值页面的写法:
        <router-link target="_blank"
                             :to="{path:'/login',query:{userId: "1313131"}}">
         </router-link>
2:在取值页面的写法:同第二种。

其实,router-link也可以使用name的方法传参

同样,这种方法也需要在router/index.js里边配置每个页面的路径,name属性
name:'Message',    //就是要在路由配置里边配置这个属性,用来知道你要跳转到那个页面的名字
<router-link :to="{name:''Message'',params:{userId:'1313131'}}">Hi页面1</router-link>

取参方法:

this.$route.params.userId
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值