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 相关文章推荐
推荐dojo学习笔记
Mar 24 Javascript
IE本地存储userdata的一个bug说明
Jul 01 Javascript
异步动态加载JS并运行(示例代码)
Dec 13 Javascript
深入理解JavaScript编程中的原型概念
Jun 25 Javascript
深入理解js generator数据类型
Aug 16 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 Javascript
浅谈webpack 构建性能优化策略小结
Jun 13 Javascript
Layui 动态禁止select下拉的例子
Sep 03 Javascript
Vue.directive 实现元素scroll逻辑复用
Nov 29 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 Javascript
Element Input输入框的使用方法
Jul 26 Javascript
浅谈vue中resetFields()使用注意事项
Aug 12 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
mysq GBKl乱码
2006/11/28 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
2013/12/24 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
2018/05/12 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
JavaScript判断对象是否为数组
2015/12/22 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
利用Python2下载单张图片与爬取网页图片实例代码
2017/12/25 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
美国知名奢侈美容品牌零售商:Cos Bar
2017/04/21 全球购物
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
PHP面试题大全
2015/10/16 面试题
医院后勤自我鉴定
2013/10/13 职场文书
机关门卫岗位职责
2013/12/30 职场文书
知识竞赛主持词
2014/03/26 职场文书
后备干部培训方案
2014/05/22 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
redis lua限流算法实现示例
2022/07/15 Redis