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 相关文章推荐
用unescape反编码得出汉字示例
Apr 24 Javascript
JS+CSS实现Li列表隔行换色效果的方法
Feb 16 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
May 16 Javascript
前端js文件合并的三种方式推荐
May 19 Javascript
javascript垃圾收集机制的原理分析
Dec 08 Javascript
jQuery延迟执行的实现方法
Dec 21 Javascript
knockoutjs模板实现树形结构列表
Jul 31 Javascript
React性能优化系列之减少props改变的实现方法
Jan 17 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
JS实现骰子3D旋转效果
Oct 24 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
Nov 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发送html格式文本邮件的方法
2015/06/10 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
php文件包含的几种方式总结
2019/09/19 PHP
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
jQuery+ajax实现实用的点赞插件代码
2016/07/06 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python实现简易Web爬虫详解
2018/01/03 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
Python Collatz序列实现过程解析
2019/10/12 Python
pygame实现飞机大战
2020/03/11 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
请说出以下代码输出什么
2013/08/30 面试题
文字自荐书范文
2014/02/10 职场文书
小学清明节活动方案
2014/03/08 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
甜品店创业计划书
2014/09/21 职场文书
2015年党员承诺书
2015/01/21 职场文书
盗窃案辩护词
2015/05/21 职场文书
爱国主义电影观后感
2015/06/18 职场文书