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 相关文章推荐
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
Jun 02 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
Mar 12 Javascript
jQuery源码解读之addClass()方法分析
Feb 20 Javascript
Google 地图事件实例讲解
Aug 06 Javascript
一个极为简单的requirejs实现方法
Oct 20 Javascript
Vue组件实例间的直接访问实现代码
Aug 20 Javascript
浅谈angular4实际项目搭建总结
Dec 01 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
Sep 08 Javascript
100行代码实现一个vue分页组功能
Nov 06 Javascript
基于Express框架使用POST传递Form数据
Aug 10 Javascript
js实现简单五子棋游戏
May 28 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
Jun 24 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 cc攻击代码与防范方法
2012/10/18 PHP
使用array mutisort 实现按某字段对数据排序
2013/06/18 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
2015/02/13 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
Python分支结构(switch)操作简介
2018/01/17 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Python之列表实现栈的工作功能
2019/01/28 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
加工操作管理制度
2014/01/19 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
企业优秀团员事迹材料
2014/08/20 职场文书
2014年文员工作总结
2014/11/18 职场文书
营销计划书范文
2015/01/17 职场文书
个人求职信格式范文
2015/03/20 职场文书
物流业务员岗位职责
2015/04/03 职场文书
南京大屠杀观后感
2015/06/02 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
再谈python_tkinter弹出对话框创建
2022/03/20 Python