一、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