vue-router传递参数的注意点

前言

        在学习vue-router时,我一直对vue-router传参抱有很大的疑惑,今天对vue传参进行了代码实验得出了几个结论,希望记录和分享

列举几种合法的参数传递

1 以动态参数的形式传递

<router-link to="/user/3">登入</router-link>

        路由配置项 

const router = new VueRouter({
            routes: [{
                name: 'use',
                path: '/user/:id',
                component: User
            }],
        })

        在对应组件中获取id 通过 this.$route.params.id 获取

const User = {
            template: `
                <h3>你好{{$route.params.id}}</h3>
            `,
        }

        如果只传入id值该方式是最好的方法  数据不会丢失

2 以params对象的形式传参

<router-link :to="{name: 'use', params: {id: 3}}">登入</router-link>

        或者是:编程式路由

this.$router.push({name: 'use', params: {id: 3}})

        路由配置项  

 const router = new VueRouter({
            routes: [{
                name: 'use',
                path: '/user',
                component: User
            }],
        })

        注意点:1   to 前面必须加上 : 或者 v-bind:用于绑定属性

                      2   .push({}) 和 :to({})内的配置项一定是以name路由名称的形式配置,用path拿不到数据

                      3 以这种方式传递参数,页面刷新时数据会丢失(这也正是之前让我困惑的点)

                      4 组件获取参数的形式也是 this.$route.params.id 与第1种传参有本质上的区别,不会再url上进行体现

3 以query对象的形式传参

      本质上就是在url 地址上一?xxxx=xxx的形式进行传参,数据不会丢失

<router-link :to="{name: 'use', query: {id: 3}}">登入</router-link>
this.$router.push({name: 'use', query: {id: 3}})
 const router = new VueRouter({
            routes: [{
                name: 'use',
                path: '/user',
                component: User
            }],
        })

你也可以直接在url上进行书写,传递大量数据的话推荐使用 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:python操作redis


下一篇:vite 构建,页面打开空白如何解决