使用 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 相关文章推荐
AeroWindow 基于JQuery的弹出窗口插件
Jun 27 Javascript
jquery更换文章内容与改变字体大小代码
Sep 30 Javascript
js去除空格的12种实用方法
Nov 08 Javascript
js showModalDialog参数的使用详解
Jan 07 Javascript
JS动态加载脚本并执行回调操作
Aug 24 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
Sep 20 Javascript
Vue.js快速入门实例教程
Oct 15 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 Javascript
基于Node的React图片上传组件实现实例代码
May 10 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 Javascript
测量JavaScript函数的性能各种方式对比
Apr 27 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
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php+mysql结合Ajax实现点赞功能完整实例
2015/01/30 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
php生成无限栏目树
2017/03/16 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
Node.js+Express+Mysql 实现增删改查
2019/04/03 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
Vue v-for循环之@click点击事件获取元素示例
2019/11/09 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
python打开音乐文件的实例方法
2020/07/21 Python
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
TOWER London官网:鞋子、靴子、运动鞋等
2019/07/14 全球购物
测绘工程系学生的自我评价
2013/11/30 职场文书
中秋节超市促销方案
2014/01/30 职场文书
设备管理实施方案
2014/05/31 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
答辩状格式范本
2015/05/22 职场文书
老人节主持词
2015/07/04 职场文书
网络舆情信息简报
2015/07/21 职场文书