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 相关文章推荐
在IE下:float属性会影响offsetTop的取值
Dec 22 Javascript
createElement与createDocumentFragment的点点区别小结
Dec 19 Javascript
js实现在文本框光标处添加字符的方法介绍
Nov 24 Javascript
Javascript实现页面跳转的几种方式分享
Oct 26 Javascript
jquery遍历checkbox介绍
Feb 21 Javascript
理解JavaScript的变量的入门教程
Jul 07 Javascript
javascript设计模式之模块模式学习笔记
Feb 15 Javascript
javascript设计模式之中介者模式学习笔记
Feb 15 Javascript
vue下跨域设置的相关介绍
Aug 26 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
Vue实现兄弟组件间的联动效果
Jan 21 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日历程序
2006/12/06 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
PHP实现递归的三种方法
2020/07/04 PHP
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
基于jquery的手风琴图片展示效果实现方法
2014/12/16 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
javascript中获取元素标签中间的内容的实现方法
2016/10/08 Javascript
Bootstrap table的使用方法
2016/11/02 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
python继承和抽象类的实现方法
2015/01/14 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
如何在 Django 模板中输出 "{{"
2020/01/24 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
python实现猜单词游戏
2020/05/22 Python
基于python实现模拟数据结构模型
2020/06/12 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
青年文明号事迹材料
2014/01/18 职场文书
中式婚礼主持词
2014/03/13 职场文书
战略合作协议书范本
2014/04/18 职场文书
赡养老人协议书
2014/04/21 职场文书
临床医学专业求职信
2014/08/08 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
Python打包为exe详细教程
2021/05/18 Python
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers