目录
一、概念
vue中的一个插件库,专门用来实现SPA应用;
1、SPA应用:
①、单页面Web应用(single page web application,SPA);
②、整个应用只有一个完整的页面;
③、点击页面的导航链接不会刷新页面,只会进行页面的局部刷新;
④、数据需要通过ajax请求获取;
2、路由的理解:
一个路由就是一组映射关系(key - value),key为路径,value可能是function或components;
路由的分类:
后端路由:
①、value为function,用于处理客户端提交的请求;
②、工作过程:服务器接收到一个请求时,根据请求路径找到匹配的函数来处理请求,返回响应数据;
前端路由:
①、理解value是components,用于展示页面内容;
②、工作过程:当浏览器的路径改变时,对应的组件就会展示;
二、基本实现
1、安装vue-router
命令:npm i vue-router(这个是适用于vue3版本,如果是想使用适用于vue2版本的话,就需要使用npm i vue-router@3命令行)
2、应用插件
Vue.use(VueRouter)
3、编写router配置项
新建router/index.js文件
// 该文件专门用于创建整个应用的路由器
import VueRouter from 'vue-router'
// 引入组件(路由组件一般放在pages文件夹)
import About from '../pages/About'
import Home from '../pages/Home'
// 创建并暴露一个路由器
export default new VueRouter({
routes:[
{
path:'/about',
component:About
},
{
path:'/home',
component:Home
}
]
})
4、实现切换
<!-- Vue中借助router-link标签实现路由的切换 -->
<router-link class="list-group-item" active-class="active" to="about">About</router-link>
<router-link class="list-group-item" active-class="active" to="home">Home</router-link>
5、指定展示位置
<!-- 指定切换后组件呈现内容的位置 -->
<router-view></router-view>
三、注意事项
1、路由组件通常放在pages文件夹,而一般组件通常存放在conponents文件夹;
2、切换不同的路由组件时,隐藏的路由组件本质上默认是被销毁了,需要的时候再重新挂载;
3、每个组件之间共用一个router,可以通过组件的$router属性获取;
4、每个组件都有自己的$route属性,里面存储着自己的路由信息;
四、多级(嵌套)路由
1、配置路由规则:使用children配置项:
router/index.js
routes:[
// 一级路由
{
path:'/about',
component:About
},
{
path:'/home',
component:Home,
// 二级路由
children:[
{
path:'news',
component:News
},
{
path:'message',
component:Message
}
]
}
]
2、跳转:要写完整路径
<router-link to="/home/message">Message</router-link>
五、路由的query参数
1、传递参数
字符串写法和对象写法
<!-- 跳转路由,并携带参数:to的字符串写法 -->
<router-link :to="`/home/message/detail?id=${mes.id}&title=${mes.title}`">{
{mes.title}}</router-link>
<!-- 跳转路由,并携带参数:to的对象写法 -->
<router-link :to="{
path:'/home/message/detail',
query:{
id:mes.id,
title:mes.title
}
}">
{
{mes.title}}
</router-link>
2、接收参数
<ul>
<li>消息编号:{
{$route.query.id}}</li>
<li>消息标题:{
{$route.query.title}}</li>
</ul>
六、路由的params参数
1、配置路由:
申明接收使用params参数