路由的name是路由对象中的一个配置选项,类似于下面这样的:
const router = new VueRouter({
routes:[
{
path:"info",
name:"info",
component:info
}
]
})
const router = new VueRouter({
routes:[
{
path:"/book/:bookId",
component:Book
}
]
})
const router = new VueRouter({
routes:[
{
path:"/book/:bookId",
name:"book",
component:Book
}
]
})
router.push({ name:"book" , params:{ bookId:123 }})
<router-link :to=" { name:"book" , params:{ bookId:123 }} ">BOOK</router-link>
项目中遇到路由跳转时,path发生变化导致页面展示错误的问题。
const router = new VueRouter({
routes:[
{
path:"/user/info",
name:"info",
component:userInfo
},
{
path:"/book/info",
name:"info",
component:bookInfo
}
]
})
this.$router.push ({
path:"/book/info",
name:"info",
})
总结:
- router中的name相当于该路径的别名,为了方便找到他,有时候可以不设置name,比如一个人的名字太长了,你可以取一个短的别名,当你准备跳转时,直接用这个别名就可以了;
- 当psuh(对象)时,name和path同时存在会优先根据name去找寻path来进行跳转;
- name作为别名也需要保证它的唯一性,不然会导致找寻路径时出现错误;
- 无论是否需要使用路由的name,都建议给他写上,当你需要的时候就非常有用了,这是一个建议做法。