vue-router路由传参的两种方式
一、params和query理解
params方法传参的时候,要在路由后面加参数名占位;并且传参的时候,参数名要跟路由后面设置的参数名对应。
/user/:uname 这个路由匹配/user/wade, /user/james 这里的 uname 叫 params
query方法,就没有这种限制,直接在跳转里面用就可以。
/user?uname=wade /user?uname=james 这里的 uname 叫 query
二、query的用法
路由配置: // 使用params传参,路由配置的时候 path 要带上参数 { path: '/user/:uname', name: "users", component: User //这个 User 是组件名称 } 跳转方式: // 方法1: <router-link :to="{ name: 'users', params: { uname: wade }}">按钮</router-link> // 方法2: this.$router.push({name:'users',params:{uname:wade}}) // 方法3: this.$router.push('/user/' + wade)
页面url显示
params在浏览器地址栏中不显示参数名称
http://localhost:8080/user/wade
获取参数方式:
this.$route.params.uname
三、params的用法
路由配置 //使用 query 传参 这里不需要参入参数,参见上面的params写法 { path: '/user', name: "users", component: User //这个 users 是传进来的组件名称 } 跳转方式: // 方法1: <router-link :to="{ name: 'users', query: { uname: james }}">按钮</router-link> // 方法2: this.$router.push({ name: 'users', query:{ uname:james }}) // 方法3: <router-link :to="{ path: '/user', query: { uname:james }}">按钮</router-link> // 方法4: this.$router.push({ path: '/user', query:{ uname:james }}) // 方法5: this.$router.push('/user?uname=' + jsmes) 页面url显示:
query在浏览器地址栏中显示参数名称
http://localhost:8080/user?uname=james
获取参数方式:
this.$route.query.uname