网站首页 > 博客文章 正文
路由配置:
默认配置文件(src/router/index.js)
path 路由路径,支持动态路由,动态路由参数名加冒号,例如 /user/profile/:uid
name 路由名称,跳转时可根据名称定位
component 加载的组件,支持直接加载和懒加载
直接加载,一般首页,默认页面采用直接加载,
懒加载,需要借助箭头函数,实现按需加载chunk js
redirect 路由跳转,一般包含子路由,跳转默认一个子路由
1.直接写跳转path。
2.通过对象方式,对象内定位指定路由
3.通过箭头函数
children 嵌套子路由数组列表
alias 路由别名,支持字符串单条和数组多条,可以通过简单别名访问
{
path: '/user',
alias: '/u',
name: 'User',
component: () => import('../views/User'),
// redirect: '/user/setting',
redirect: {name: 'UserFollow'},
children: [
{
path: 'follow',
name: 'UserFollow',
component: () => import('../views/User/Follow')
},
{
path: 'profile/:uid',
alias: 'if/:uid',
name: 'UserProfile1',
// redirect: to => ({
// name: 'UserProfile2',
// query: {uid: to.params.uid}
// }),
redirect: to => {
return {
name: 'UserProfile2',
query: {uid: to.params.uid}
};
},
component: () => import('../views/User/Profile')
},
{
path: 'profile',
name: 'UserProfile2',
component: () => import('../views/User/Profile')
},
]
},
路由传参
通过动态路由传递:
例如:/good/13 (遵循restful api规范)
实现关键代码:
动态路由配置:
{
path: 'good/:id',
name: 'GoodInfo1',
component: () => import('../views/Good/Info')
},
动态路由导航链接:
<li v-for="item in goods" :key="item.id">
<router-link :to="'/good/'+item.id">{{item.title}}</router-link>
</li>
模板接收动态路由参数:
{{$route.params.id}}
JS计算属性接收动态路由参数:
computed:{
pageid(){
return this.$route.params.id;
},
}
通过路由query参数传递
例如:/good?id=13&catid=1
路由配置:
{
path: 'good',
name: 'GoodInfo2',
component: () => import('../views/Good/Info')
},
路由导航:
<li><router-link to="/good?id=13">文章1</router-link></li>
<li><router-link :to="{path:'/good', query:{id: 14}}">文章2</router-link></li>
router-link 或 自定义标签
<button :class="{ac:$route.path == '/good'}" @click="$router.push({path:'/good', query: {id:15}})">文章3</button>
模板接收query参数:
{{$route.query.id}}
导航守卫
导航守卫适用范围:
全局导航守卫
路由独享守卫
组件内守卫
导航守卫种类:
前置守卫(路由前置中间件)
// 以全局为例:前置守卫(请求之前拦截器)
router.beforeEach((to) => {
// 判断token,登录,认证鉴权,路由鉴权跳转等
});
后置钩子(路由后置中间件)
// 以全局守卫 为例:
router.afterEach(() => {
// 这里写一些,比如请求完,路由不存在的情况,报错处理
});
路由内置标签:
router-link 导航链接,可以通过button,a链接等替代。
router-view 导航组件对应视图
<router-link to="/about">关于我们</router-link>
<router-view />
路由视图缓存
借助keep-alive 组件 实现 组件间 缓存。
注:vue3 写法 区别于 vue2
<router-view v-slot="{ Component }">
<transition>
<keep-alive>
<component :is="Component" />
</keep-alive>
</transition>
</router-view>
猜你喜欢
- 2024-10-05 Web 开发中 route 和 router 有什么区别?
- 2024-10-05 图解各种路由协议(路由协议基础知识)
- 2024-10-05 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 下)
- 2024-10-05 2024前端面试题(三)(2020前端最新面试题)
- 2024-10-05 详解Vue3中 router 带来了哪些变化?
- 2024-10-05 Vue实战篇|使用路由管理用户权限(动态路由)
- 2024-10-05 vue路由鉴权(vue 路由鉴权)
- 2024-10-05 Vue Router中应对路由参数变动的策略(watch监听与导航守卫应用)
- 2024-10-05 前端权限路由详细介绍(前端路由权限控制)
- 2024-10-05 VUE前端编程:浅谈路由的常见管理模式
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)