使用 webpack 插件自动生成 vue 路由文件的方法


Posted in Javascript onAugust 20, 2019

一款自动生成 vue 路由文件的 webpack 插件 vue-route-webpack-plugin 在项目中试点成功了,现在在项目中已经不需要再维护路由配置文件了,由插件自动生成,节省了大家维护路由的时间。

从长远来看,使用插件自动生成路由是具有一定好处的。当项目中的路由配置非常多的时候,为了区分业务,你可能需要分成许多个文件来存放这些路由文件,这样就不得不去维护这些路由文件。

比如这样的路由文件结构:

|-src/
  |-router/
    index.js
    childrenRouter.js
    childrenRouters/
      // ...some children router files

其中 childrenRouters 目录中维护了各个业务相关的路由。

每当要添加路由的时候,还得重复的写 import 和路由配置项。

比如:

import userlist from '@/views/user/list.vue';
import shoplist from '@/views/shop/list.vue';
import goodslist from '@/views/goods/list.vue';
//import ...

export default [
 {
  path: 'user/list',
  name: 'userlist',
  component: userlist,
  alias: 'user',
 },
 {
  path: 'shop/list',
  name: 'shoplist',
  component: shoplist,
  alias: 'shoplist',
 },
 // ...
]

当一个项目的路由配置多了以后,要维护这些路由文件也是一件费时费神的事情。

现在使用 vue-route-webpack-plugin 插件来自动生成路由后,就无需再关心和维护这些路由文件了。

使用方式

注:以下摘自仓库 README,如有更新以仓库为准

安装

$ yarn add -D @xiyun/vue-route-webpack-plugin

配置

在 vue.config.js 或在 webpack 配置文件中加入插件配置:

const VueRouteWebpackPlugin = require('@xiyun/vue-route-webpack-plugin');

module.exports = {
 configureWebpack: {
  plugins: [
   new VueRouteWebpackPlugin({
    // 选项,见下文
   })
  ],
 }
};

使用

在需要配置路由的页面级 .vue 文件中加入路由配置:

假设在 user.vue 文件中:

<template>
 <div>user</div>
</template>
<script>
// @route('user/list')
// 或
// 第二个参数是路由别名
// @route('user/list', 'user')
// 或使用多行注释
/**
 * @route('user/list')
 * 或
 * @route('user/list', 'user')
 */
export default {
 name: 'user',
 data() {
  return {}
 }
}
</script>

默认情况下,当你启动开发服务或执行构建的时候,就会在 src/router 目录下生成 children.js 这个路由文件。

假设你的页面文件路径是: src/views/user/list.vue ,那么生成的路由文件的内容看起来就会是这样的:

import userlist from '@/views/user/list.vue';
export default [
 {
  path: 'user/list',
  name: 'userlist',
  component: userlist,
  // 如果配置了别名
  alias: 'user',
 },
]

因为这个文件会由插件自动生成,所以你可以在 .gitignore 文件中把这个路由文件在版本库中忽略掉,避免多人协同开发时因频繁改动发生冲突。

默认目录约定

src/
 |-views/     (项目文件,插件会扫描该目录下所有 .vue 文件的路由配置)
  |-...
 |-router/    (路由目录)
  |-index.js   (主路由文件,需要引入 children.js 作为子路由来使用)
  |-children.js (路由文件,由插件自动生成)

选项参考

插件提供了以下这些选项供自定义配置

new VueRouteWebpackPlugin({
 // 文件扩展名,默认只查询 .vue 类型的文件,根据实际需要可以进行扩展
 extension: ['vue', 'js', 'jsx'],
 // 插件扫描的项目目录,默认会扫描 'src/views' 目录
 directory: 'src/views',
 // 生成的路由文件存放地址,默认存放到 'src/router/children.js'
 routeFilePath: 'src/router/children.js',
})

总结

以上所述是小编给大家介绍的使用 webpack 插件自动生成 vue 路由文件的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
原生javascript兼容性测试实例
Jul 01 Javascript
页面载入结束自动调用js函数示例
Sep 23 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
javaScript使用EL表达式的几种方式
May 27 Javascript
JavaScript实现的多个图片广告交替显示效果代码
Sep 04 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
Jul 09 Javascript
AngularJs+Bootstrap实现漂亮的计算器
Aug 10 Javascript
mpvue中使用flyjs全局拦截的实现代码
Sep 13 Javascript
理顺8个版本vue的区别(小结)
Sep 17 Javascript
javascript中toFixed()四舍五入使用方法详解
Sep 28 Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 Javascript
AJAX学习笔记
May 18 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 #Javascript
JS中的算法与数据结构之队列(Queue)实例详解
Aug 20 #Javascript
JS中的算法与数据结构之栈(Stack)实例详解
Aug 20 #Javascript
小程序如何在不同设备上自适应生成海报的实现方法
Aug 20 #Javascript
使用 Vue 实现一个虚拟列表的方法
Aug 20 #Javascript
基于vue手写tree插件的那点事儿
Aug 20 #Javascript
详解基于原生JS验证表单组件xy-form
Aug 20 #Javascript
You might like
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
JS扩展方法实例分析
2015/04/15 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
详解Python中的变量及其命名和打印
2016/03/11 Python
利用python操作SQLite数据库及文件操作详解
2017/09/22 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
打架检讨书400字
2014/01/17 职场文书
班级课外活动总结
2014/07/09 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
邀请书模板
2015/02/02 职场文书
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python
MySQL查询日期时间
2022/05/15 MySQL