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 23 Javascript
JS异常处理的一个想法(sofish)
Mar 14 Javascript
js+css实现超简洁的二级下拉菜单效果代码
Sep 07 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
Jul 09 Javascript
通过扫描二维码打开app的实现代码
Nov 10 Javascript
JS实现含有中文字符串的友好截取功能分析
Mar 13 Javascript
vue2.0 常用的 UI 库实例讲解
Dec 12 Javascript
vue自定义指令之面板拖拽的实现
Apr 14 Javascript
layui监听单元格编辑前后交互的例子
Sep 16 Javascript
使用react+redux实现计数器功能及遇到问题
Jun 02 Javascript
详解JSON.parse和JSON.stringify用法
Feb 18 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 AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
php 对输入信息的进行安全过滤的函数代码
2012/06/29 PHP
php GUID生成函数和类
2014/03/10 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
JS 统计时间
2021/03/09 Javascript
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
js密码强度校验
2015/11/10 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
Js 获取、判断浏览器版本信息的简单方法
2016/08/08 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
基于element-ui的rules中正则表达式
2018/09/04 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
跟老齐学Python之永远强大的函数
2014/09/14 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
Python使用Matlab命令过程解析
2020/06/04 Python
Grid 宫格常用布局的实现
2020/01/10 HTML / CSS
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
护士优质服务演讲稿
2014/08/26 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
幸福终点站观后感
2015/06/04 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL