使用 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 事件查询综合 推荐收藏
Mar 10 Javascript
javascript检查表单数据是否改变的方法
Jul 30 Javascript
一个JavaScript函数把URL参数解析成Json对象
Sep 24 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
Jul 18 Javascript
深入解析JavaScript编程中的this关键字使用
Nov 09 Javascript
jQuery事件绑定用法详解
Sep 08 Javascript
有关文件上传 非ajax提交 得到后台数据问题
Oct 12 Javascript
node.js文件上传处理示例
Oct 27 Javascript
JS多文件上传的实例代码
Jan 11 Javascript
分析JS中this引发的bug
Dec 12 Javascript
jQuery使用each遍历循环的方法
Sep 19 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
微信小程序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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
php错误级别的设置方法
2013/06/17 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
php创建多级目录的方法
2015/03/24 PHP
PDO::exec讲解
2019/01/28 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
js 通用javascript函数库整理
2011/08/14 Javascript
Firefox下无法正常显示年份的解决方法
2014/09/04 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
python解析中国天气网的天气数据
2014/03/21 Python
python装饰器decorator介绍
2014/11/21 Python
Python的Twisted框架上手前所必须了解的异步编程思想
2016/05/25 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
学生党员思想汇报
2013/12/28 职场文书
工地资料员岗位职责
2013/12/31 职场文书
人事行政专员岗位职责
2014/07/23 职场文书
小学向国旗敬礼活动方案
2014/09/27 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
讲文明倡议书
2015/04/29 职场文书
暂住证明怎么写
2015/06/19 职场文书
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android