vue自动路由-单页面项目(非build时构建)


Posted in Javascript onApril 30, 2019

这是一个什么项目?

答:这是一个单页面的vue.js项目,主要为了实现在非build时,进行自动路由。简单点说,就是在请求页面时,根据url进行动态添加路由。

自动路由有什么限制吗?

答:有,因为是通过url进行动态添加,所以,在指定文件夹下,组件文件的相对路径必须与url有一定的关系。当前demo项目,url路径与modules文件夹下的组件相对路径一致。例如:

url地址:localhost:5000/home/index

组件路径:modules/home/index/index.vue

此方式的自动路由能做些什么?

答:

1.动态权限控制:在匹配不上路由时,请求后台获取是否有权限,根据后台的反馈处理是否添加路由(是否允许访问)。

2.自动跳转首页、404页面等页面

项目demo地址

vue.js单项目自动路由:https://github.com/bobowire/wireboy.samples/tree/master/vue.js/onepage

具体步骤

1.组件生成

在router文件夹下添加import.js文件,代码如下图:

 源码:

module.exports = file => () => import('@/modules/' + file + '.vue')

2.拦截路由

 在src目录下,添加autoroute.js文件,代码如下图:

源码:

import router from './router'
const _import = require('./router/import')// 获取组件的方法
router.beforeEach(async (to, from, next) => {
 // 默认的首页页面
 if (to.fullPath === '/') {
 next('/home/index')
 } else if (to.matched.length === 0) {
 // 获取组件路径
 let componentpath = to.fullPath.substring(1) + '/' + to.fullPath.substring(to.fullPath.lastIndexOf('/') + 1)
 // 添加路由
 router.addRoutes([{
 path: to.fullPath,
 name: to.fullPath.substring(to.fullPath.lastIndexOf('/') + 1),
 component: _import(componentpath)
 }])
 // 路由重匹配
 next({ ...to, replace: true })
 } else {
 next()
 }
})

总结

以上所述是小编给大家介绍的vue自动路由-单页面项目(非build时构建),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
js实现的日期操作类DateTime函数代码
Mar 16 Javascript
jQuery实现渐变下拉菜单的简单方法
Mar 11 Javascript
JS实现左右拖动改变内容显示区域大小的方法
Oct 13 Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 Javascript
浅谈AngularJS中ng-class的使用方法
Nov 11 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 Javascript
jquery实现折叠菜单效果【推荐】
Mar 08 Javascript
JavaScript实现移动端轮播效果
Jun 06 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
Sep 29 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
JavaScript如何实现图片处理与合成
May 29 Javascript
vue-router 前端路由之路由传值的方式详解
Apr 30 #Javascript
微信小程序页面间传值与页面取值操作实例分析
Apr 30 #Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
Apr 30 #Javascript
微信小程序常用赋值方法小结
Apr 30 #Javascript
微信小程序实现同一页面取值的方法分析
Apr 30 #Javascript
一百行JS代码实现一个校验工具
Apr 30 #Javascript
Vue-cli3简单使用(图文步骤)
Apr 30 #Javascript
You might like
php获取访问者IP地址汇总
2015/04/24 PHP
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
2017/06/19 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
JavaScript 格式字符串的应用
2010/03/29 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
url传递的参数值中包含&时,url自动截断问题的解决方法
2016/08/02 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
RequireJs的使用详解
2017/02/19 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
python实现装饰器、描述符
2018/02/28 Python
python读取LMDB中图像的方法
2018/07/02 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
在python Numpy中求向量和矩阵的范数实例
2019/08/26 Python
Python实现新型冠状病毒传播模型及预测代码实例
2020/02/05 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
公司部门司机岗位职责
2014/01/03 职场文书
药品采购员岗位职责
2014/02/08 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
创业者迈进成功第一步:如何写创业计划书?
2014/03/22 职场文书
校园环保建议书
2014/05/14 职场文书
庆七一宣传标语
2014/10/08 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
教师个人年终总结
2015/02/11 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
redis客户端实现高可用读写分离的方式详解
2021/07/04 Redis
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python