Vue传参方式可以划分为params传参(参数隐藏在路径中)和query传参(参数在?后)俩种方式

1. 使用 router-link  标签跳转路由

要注意 to  和 :to 的不同:  to 不带参数 , :to 带参数

(1)使用params 传参

vue页面

<router-link :to="{name:'Test7',params:{tid:1,title:'hello test7'}}">测试7-路由</router-link> 

要修改路由文件( router目录下的 js  ) ,注意 :

{
   path: '/ts7/:tid/:title',
   name: 'Test7',
   component: () => import('../views/test7.vue')
 }

注意:在路由的配置文件里给该路由后面拼接需要的参数(:参数)这步不要省略。否则params传参刷新页面的时候会丢失数据。

js中接收参数,注意:this.$route

init(){
                // 接收 name params 的 参数
                // 注意是 this.$route
                this.tid = this.$route.params.tid;
                this.title = this.$route.params.title;
            }

(2)使用query 传参数

vue 页面

<router-link :to="{path:'/ts8',query:{tid:2,title:'welcome to test8'}}">测试8-路由</router-link> 

不要改路由文件
js中接收参数

init(){
                // path query 组合
                this.tid = this.$route.query.tid;
                this.title = this.$route.query.title;
            }

2. 函数式路由传,不用router-link标签

关键语法: this.$router.push

vue 页面上写

<div>
            <button @click="jump8">去测试8页面</button>
        </div>

js 函数,query 传参的方式

jump8(){
                //this.$router.push("/ts6"); // 不带参数
                this.$router.push({ 
                    path:'/ts8',
                    query:{
                        tid:4,
                        title:'7页面过来访问'
                    }
                });
                // 带参数
            }

点击按钮后就可以调到对应的vue路由页面。

params传参的方式,要修改对应的路由js

jump7(){
                //编程式路由 : this.$router.push
                this.$router.push({
                    name:'Test7',
                    params:{
                        tid:3,
                        title:'8页面过来访问'
                    }
                })
                //
            }

02-16 12:35