vuejs基础复习-5
路由
概念:
根据URL决定显示什么内容,这个系统就是路由系统。
为什么需要
因为vue和react这些SPA框架,只有一个html页面,所以需要使用某种手段来决定当前页面显示什么内容,所以才有了前端路由系统。
基本使用
- 路由配置除外,使用到的只有2个标签
1
2
3
4<!-- 用于进行页面的跳转 -->
<router-link />
<!-- 用于显示,根据url决定显示的页面 -->
<router-view></router-view> - 进行切换页面跳转
在浏览器输入http:****/home就会显示home ,输入about就会显示about
1 |
|
1 |
|
- 动态路由显示
例如一个有一个todo的列表,其中每一项内都有不同的数据,但是数据显示的样式什么都一样,我们可以用同一个组件来渲染,只需要在跳转时传递一个标识,来告诉组件加载所对应的数据就可以了
1 |
|
1 |
|
query和的区别:query使传递的值会显示在url中,params不会,所以这也导致了假如我们没有在list后面写id,那list页面刷新后,传递过来的数据就会丢失。
总结:使用query可以不在路由进行配置,params时要在路由进行动态参数配置
其他使用
总结除过页面跳转意外,使用过的路由系统的功能。
路由嵌套
使用场景:当一个页面下的其他页面都有相同的部分,只有小部分需要根据不同的地址来显示不同的内容时,就可以使用,比如后台管理系统,所有页面左边都有整体的菜单
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27// router.js配置
...
const routes=[
{
// url的路径
path:'/home',
// home.vue文件的name
name:'home',
// 引入该文件
component:()=>import('Home.vue'),
// 配置 子路由
children:[
{
path:'/one',
name:'one',
component:()=>import('One.vue'),
},
{
path:'/two',
name:'two',
component:()=>import('Two.vue'),
},
...
]
}
]
...1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<!-- home.vue使用 -->
<template>
<div>
<p >
菜单
</p>
<!-- 根据url的不同来显示one,two -->
<router-view />
</div>
</template>
<script>
export default {
name:'home',
}
</script>路由导航守卫
作用
- 在页面进入前后进行一些操作,比如重定向,数据操作等等
使用场景
- 在页面进入前验证token是否过期、验证用户是否还有权限访问该页、根据需要不一样,重新导向用户的访问页面
分类:
全局:作用在所有路由
路由独享:只作用在配置的路由
组件内:只作用在配置的组件
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!