22.动态路由
2019-11-11 本文已影响0人
最爱喝龙井
首先,我们先创建一个user
的组件
<template lang="">
<div>
<h2>我是用户中心</h2>
<p>我是用户中心内容</p>
</div>
</template>
<script>
export default {
name: 'user',
}
</script>
<style lang="">
</style>
然后,在routes
这个属性中,建立映射关系,这里需要通过:id
的方式,这里的id
名字可以随便起,如果我们要在页面中拿到这个路径的时候需要引用这个变量
let routes = [
{
path: '/',
redirect: '/Home'
},
{
path: '/Home',
component: Home
},
{
path: '/About',
component: About
},
{
path: '/User/:userId',
component: User
}
]
接着,我们就可以在app.vue
这个主页面中这样写,在组件的data
中定义一个用户名,然后通过v-bind
绑定to
属性,这样就可以拿到data
中定义的用户名了
<template>
<div id="app">
<router-link to="/Home">首页</router-link>
<router-link to="/About">关于</router-link>
<router-link :to="'/User/'+ userId">用户</router-link>
<router-view></router-view>
</div>
</template>
<script>
export default {
name: 'App',
data() {
return {
userId: 'lisi'
}
},
methods: {
}
}
</script>
<style>
</style>
如果我们想在页面中user
组件中拿到app.vue
组件的data
中定义的用户名,我们可以通过$route.params.userId
来拿到,路径中的变量值
<template lang="">
<div>
<h2>我是用户中心</h2>
<p>我是用户中心内容</p>
<h1>{{userId}}</h1>
</div>
</template>
<script>
export default {
name: 'user',
computed: {
userId() {
return this.$route.params.userId
}
}
}
</script>
<style lang="">
</style>