vue中路由组件传参

path-query

参数拼接在地址栏上

html代码:
    <div id="app">
        <router-link to="user">user</router-link>
        <router-link to="manager">manager</router-link>
        <router-view></router-view>
    </div>

js代码:
    let user = {
            template:`
                 <div @click="userHandler">普通用户</div>
             `,
             data() {
                 return {
                     list:"hello",
                     obj:{
                         name:'tom',
                         age:3
                     }
                 }
             },
             methods: {
                 userHandler() {
                     // 跳转
                     this.$router.push({
                         path:'/manager',
                         query:{
                             list:this.list,
                             obj:JSON.stringify(this.obj)
                         }

                     })
                 }
             },
         }
         let manager = {
             template:`
                 <div>管理员 {{$route.query.list}}  {{$route.query.obj}}</div>
             `
         }
         let router = new VueRouter({
             routes:[{
                 path:'/user',
                 component:user
             },{
                 path:'/manager',
                 component:manager
             }]
         })
         new Vue ({
             el:"#app",
             router
         })

name-params

html代码:
 <div id="app">
        <router-link to="user">user</router-link>
        <router-link to="manager">manager</router-link>
        <router-view></router-view>
</div>

js代码:
  
let user = {
    template:`
        <div @click="userHandler">普通用户</div>
    `,
    data() {
        return {
            list:"hello",
            obj:{
                name:'tom',
                age:3
            }
        }
    },
    methods: {
        userHandler() {
            // 跳转
            this.$router.push({
                name:'m',
                params:{
                    list:this.list,
                    obj:JSON.stringify(this.obj)
                }
            })
        }
    },
}
let manager = {
    template:`
        <div>管理员 {{$route.params.list}}  {{$route.params.obj}}</div>
    `
}
let router = new VueRouter({
    routes:[{
        path:'/user',
        component:user,
        name:'u'
    },{
        path:'/manager',
        component:manager,
        name:'m'
    }]
})
new Vue ({
    el:"#app",
    router
})


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值