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-简单的计算器实现步骤分解(附图)
May 30 Javascript
js浏览器本地存储store.js介绍及应用
May 13 Javascript
jquery实现表单验证并阻止非法提交
Jul 09 Javascript
AngularJS $injector 依赖注入详解
Sep 14 Javascript
Bootstrap表单控件使用方法详解
Jan 11 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
May 10 Javascript
JavaScript实现图片无缝滚动效果
Jul 07 Javascript
基于JavaScript实现评论框展开和隐藏功能
Aug 25 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
Jan 18 jQuery
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
Vue 实现登录界面验证码功能
Jan 03 Javascript
JavaScript的一些小技巧分享
Jan 06 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 Header失效的原因分析及解决方法
2016/11/16 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
提交表单时执行func方法实现代码
2013/03/17 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
javascript Array.prototype.slice的使用示例
2013/11/14 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
2017/05/07 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
javascript实现评分功能
2020/06/24 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
python八大排序算法速度实例对比
2017/12/06 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
车间班组长的职责
2013/12/13 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
小学生期末评语大全
2014/04/21 职场文书
我爱我校演讲稿
2014/05/21 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
小学生家长意见
2015/06/03 职场文书
农村婚礼司仪主持词
2015/06/29 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
css弧边选项卡的项目实践
2023/05/07 HTML / CSS