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 相关文章推荐
巧妙破除网页右键禁用的十大绝招
Aug 12 Javascript
jquery 实现返回顶部功能
Nov 17 Javascript
Shell脚本实现Linux系统和进程资源监控
Mar 05 Javascript
原生js和jquery实现图片轮播特效
Apr 23 Javascript
JavaScript动态创建form表单并提交的实现方法
Dec 10 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
jquery延迟对象解析
Oct 26 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
Bootstrap table简单使用总结
Feb 15 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
jqgrid实现简单的单行编辑功能
Sep 30 Javascript
vue.js父子组件通信动态绑定的实例
Sep 28 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 获取SWF动画截图示例代码
2014/02/10 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
destoon实现首页显示供应、企业、资讯条数的方法
2014/07/15 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
PHP准确取得服务器IP地址的方法
2015/06/02 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
python中二维阵列的变换实例
2014/10/09 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
用python实现的线程池实例代码
2018/01/06 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
python处理excel绘制雷达图
2019/10/18 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
Django中template for如何使用方法
2021/01/31 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
Groupon法国官方网站:特卖和网上购物高达-70%
2019/09/02 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
研究生导师推荐信
2014/09/06 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
艺术节开幕词
2015/01/28 职场文书
保护环境的宣传语
2015/07/13 职场文书
卫生主题班会
2015/08/14 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书