路由params参数和路由命名
1. 路由命名
所谓路由命名就是给路由配置name属性,它可以简化路由跳转
1.1 使用
1.1.1 给路由命名
js
{
path:'/demo',
component:Demo,
children:[
{
path:'test',
component:Test,
children:[
{
name:'hello', //给路由命名
path:'welcome',
component:Hello
}
]
}
]
}
1.1.2 简化跳转
html
<!--简化前, 需要写完整的路径-->
<router-link to="/demo/test/welcome">跳转</router-link>
<!--简化后, 直接通过名字跳转-->
<router-link :to="{name:'hello'}">跳转</router-link>
<!--简化写法配合传递参数-->
<router-link
:to="{
name:'hello',
query: {
id: 666,
title:'你好'
}
}"
>跳转</router-link>
2. 路由params参数
params参数类似SpringMVC中的@requestmapping
中的params参数,里面配置占位符接收参数
2.1 配置路由,申明接收params参数
js
{
path: '/home',
component: Home,
children: [
{
path: 'news',
component: News
},
{
path: 'message',
component: Message,
children:[
{
path: 'detail/:id/:content', // 使用占位符接收params参数
component: Detail,
name: 'mingxi'
},
]
}
]
}
特别注意
路由携带params参数时,若使用to的对象写法,则不能使用path配置项,必须使用name配置!
2.2 传递参数
vue
<template>
<div>
<ul>
<li v-for="message in messageList" :key="message.id">
<!-- 跳转路由携带params参数,to的字符串写法 -->
<router-link :to="`/home/message/detail/${message.id}/${message.content}`">{{message.content}}</router-link> |
<!-- 跳转路由携带params参数,to的对象写法 -->
<router-link :to="{
name: 'mingxi',
params: {id: message.id, content: message.content}
}">{{message.content}}</router-link>
</li>
</ul>
<hr/>
<router-view></router-view>
</div>
</template>
2.3 接收参数
vue
<template>
<div>
消息id:{{$route.params.id}}, 消息内容: {{$route.params.content}}
</div>
</template>