router/index.js
//该文件用于创建整个应用的路由器
import VueRouter from "vue-router";
import Home from '../pages/Home';
import About from '../pages/About';
import Message from "../pages/Message";
import News from "../pages/News"
import Detail from "../pages/Detail"
//创建路由器
const router = new VueRouter({
routes: [
{
name: 'guanyu',
path: '/about',
component: About
},
{
path: '/home',
component: Home,
children: [
{
path: 'news',//二级路由不用加/
component: News,
},
{
path: 'message',//二级路由不用加/
component: Message,
children: [
{
name: 'xiangqing',
path: 'detail',
component: Detail,
}
]
},
]
}
]
})
export default router
Message.vue
<template>
<div>
<ul>
<li v-for="m in messageList" :key="m.id">
<!-- 路由跳转并携带query参数,to的字符串写法 -->
<!-- <router-link :to="`/home/message/detail?id=${m.id}&title=${m.title}`">{{
m.title
}}</router-link
> -->
<!-- 路由跳转并携带query参数,to的对象写法 -->
<router-link
:to="{
name: 'xiangqing',
query: {
id: m.id,
title: m.title,
},
}"
>{{ m.title }}</router-link
>
</li>
<hr />
<router-view></router-view>
<!-- <li><a href="/message2">message002</a> </li>
<li><a href="/message/3">message003</a> </li> -->
</ul>
</div>
</template>
<script>
export default {
name: "Message",
data() {
return {
messageList: [
{ id: "001", title: "消息001" },
{ id: "002", title: "消息002" },
{ id: "003", title: "消息003" },
],
};
},
};
</script>
<style>
</style>
Detail.vue
<template>
<ul>
<li>消息编号:{{ $route.query.id }}</li>
<li>消息标题:{{ $route.query.title }}</li>
</ul>
</template>
<script>
export default {
name: "Detail",
};
</script>
<style>
</style>