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下高效拼装字符串的几种方法比较与测试代码
Apr 15 Javascript
js对象数组按属性快速排序
Jan 31 Javascript
解析js原生方法创建表格效率测试
Jul 08 Javascript
javascript分页代码实例分享(js分页)
Dec 13 Javascript
利用window.name实现windowStorage代码分享
Jan 02 Javascript
jQuery中:first-child选择器用法实例
Dec 31 Javascript
javascript实现的固定位置悬浮窗口实例
Apr 30 Javascript
前端程序员必须知道的高性能Javascript知识
Aug 24 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
JavaScript 中调用 Kotlin 方法实例详解
Jun 09 Javascript
手写简单的jQuery雪花飘落效果实例
Apr 22 jQuery
JS模拟实现哈希表及应用详解
May 04 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/10/09 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
jQuery 判断元素是否存在然后按需加载内容的实现代码
2020/01/16 jQuery
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
python中seaborn包常用图形使用详解
2019/11/25 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
Python 中Operator模块的使用
2021/01/30 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
项目考察欢迎辞
2014/01/17 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
新品发布会主持词
2014/04/02 职场文书
后备干部培训方案
2014/05/22 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
工作经历证明书范文
2014/11/02 职场文书
2015年党性分析材料
2014/12/19 职场文书
英文升职感谢信
2015/01/23 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
毕业论文致谢词
2015/05/14 职场文书
校园广播稿范文
2015/08/19 职场文书
关于运动会的广播稿
2015/08/19 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技