在我们使用路由的时候,有时候需要进行页面之间的传递参数,之前我们知道可以使用先routerlink绑定,然后通过 $route.params 来读取参数。但是还有没有其他的方式了呢?
使用 params 方式,路由需要单独配置,读取时,也只能固定读取设置好的字段
使用routerlink方式
//App.vue
<template>
<div id="app">
<nav>
<router-link :to="'/user/'+uid">User</router-link>
</nav>
<router-view/>
</div>
</template>
<script>
export default {
data(){
return {
uid:3
}
},
}
</script>
//index.js
//使用懒加载
const UserView=()=> import('../views/User')
//2.使用Vue.use(插件)来安装VueRouter插件
Vue.use(VueRouter)
//3.创建一个对象routes
const routes = [
{
path: '/user/:uid', //对应的网址路径
name: 'user', //对应的路由名称
component: UserView
}
]
//User.vue
<template>
<div>
<h1>这里是user页面</h1>
<h2>当前的用户ID是:{{$route.params.uid}}</h2>
</div>
</template>
使用函数方式
//App.vue
<template>
<div id="app">
<nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link> |
<button @click="Userclick">User</button>
</nav>
<router-view/>
</div>
</template>
<script>
export default {
data(){
return {
uid:3
}
},
methods:{
Userclick(){
this.$router.push('/user/'+this.uid);
}
}
}
</script>
使用 query 方式,路由不需要进行特殊的配置,直接使用固定方式即可,参数由 query 决定
使用routerlink方式
//App.vue
<template>
<div id="app">
<nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link> |
<router-link :to="{path:'/User',query:{'uid':55}}">User</router-link>
</nav>
<router-view/>
</div>
</template>
//index.js
//使用懒加载
const UserView=()=> import('../views/User')
//2.使用Vue.use(插件)来安装VueRouter插件
Vue.use(VueRouter)
//3.创建一个对象routes
const routes = [
{
path: '/user', //对应的网址路径
name: 'user', //对应的路由名称
component: UserView
}
]
//User.vue
<template>
<div>
<h1>这里是user页面</h1>
<h2>当前的用户ID是:{{$route.query.uid}}</h2>
</div>
</template>
函数方式
//App.vue
<template>
<div id="app">
<nav>
<router-link to="/">Home</router-link> |
<router-link to="/about">About</router-link> |
<button @click="Userclick2">User2</button>
</nav>
<router-view/>
</div>
</template>
<script>
export default {
methods:{
Userclick2(){
this.$router.push({
path:'/user',
query:{
uid:66
}
});
}
}
}
</script>