使用 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 面向对象全新理练之原型继承
Dec 03 Javascript
JavaScript 计算图片加载数量的代码
Jan 01 Javascript
JQuery页面地址处理插件jqURL详解
May 03 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
Jul 20 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
Jul 31 Javascript
JavaScript希尔排序、快速排序、归并排序算法
May 08 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
Aug 05 Javascript
Angular2 组件通信的实例代码
Jun 23 Javascript
JavaScript中的FileReader图片预览上传功能实现代码
Jul 24 Javascript
vue+node实现图片上传及预览的示例方法
Nov 22 Javascript
JS判断数组是否包含某元素实现方法汇总
Jun 24 Javascript
Javascript call及apply应用场景及实例
Aug 26 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP网络操作函数汇总
2015/05/18 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
基于thinkphp6.0的success、error实现方法
2019/11/05 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
JavaScript检测鼠标移动方向的方法
2015/05/22 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
js 转义字符及URI编码详解
2017/02/28 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
Javascript 实现 Excel 导入生成图表功能
2018/10/22 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
Vue 2.0 侦听器 watch属性代码详解
2019/06/19 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
Cpy和Python的效率对比
2015/03/20 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
python3字符串操作总结
2019/07/24 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
师范应届毕业生自荐信
2013/11/18 职场文书
大学在校生求职信范文
2013/11/21 职场文书
股权投资意向书
2014/04/01 职场文书
夫妻忠诚协议范文
2014/11/16 职场文书
社团招新宣传语
2015/07/13 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
Element实现动态表格的示例代码
2021/08/02 Javascript