【JeecgBoot-Vue3】关于 jeecg-boot-vue3 的项目理解、使用心得和改进建议

向所有投入到开源项目的先驱者致敬,感谢你们为构建开放、包容、创新的技术世界所作出的卓越贡献。

JEECGBOOT-VUE3 是一个基于 Vue 3 和 Ant Design Vue 的前端开源项目,与 JEECG 后端一起构建的一套全栈开发框架。

项目理解和使用心得

就目前我对于jeecg-boot-vue3项目的理解是,符合当前绝大部分企业的B端业务的需求 ,页面简洁大方,模块分类清晰,拓展性和性能的表现都非常不错。通过快速的二次开发接入,完全可以面对当前行业迅速变化的需求。

它包括了:系统管理,消息管理,租户管理,Mock示例 等基础常见的模块外,还包括低代码开发等通过类似积木的方式进行项目的开发。

当然整个项目而言,对开发人员最大的要求就是能具备查阅和阅读开发文档的能力,不单单是对于jeecgboot这个项目的开发而言。

在我们学校上线的毕业生课题选题系统,就是二次开发接入的jeecgboot-vue3的项目,集成毕业生和教师双向的选题系统。就目前来看完全可以容纳近1.5k左右的毕业生同时进行双向的选择课题和取消,双向发送通知消息的功能。

在学习jeecg-boot-vue3所遇到的问题,由于我的经验有限,说得不好,勿喷,只是希望能指出其中的问题,大家共同进步和学习。

好的,现在我们就来看看在JEECGBOOT-VUE3的具体内容:

版本信息

JEECGBOOT-VUE3

  • 版本: 3.6.2
  • 包管理工具:pnpm
  • 打包构建工具:vite^4.4.9
  • Tyescript 版本 ^4.9.5
  • 前端项目规范:eslint + stylelint + prettier + husky + commitlint + conventional-changelog

运行效果

工作台

一、目录结构

前端项目的目录结构,如下:

java 复制代码
├── src                开发主要代码目录
│   └── components     项目组件
│   └── utils          项目工具
│   └── views          项目页面
│   └── store          项目状态
│   └── router         项目路由
│   └── ...
├── tests              测试代码目录
├── types              项目类型目录
├── public             项目静态资源目录
├── package.json       以下为项目配置文件,关于环境、git、代码规范、commit规范的配置文件(为列举完全)
├── .env
├── .env.development
├── .env.production
├── .gitignore
├── ...

总的来说: jeecgboot-vue3的前端项目目录,整体来讲比较规范和清晰 、对于使用者、开发者来讲都是比较容易入手 进行二次开发和维护的。

二、查看项目package.json

项目使用的主要依赖(未列举完全)

  1. vue ^3.4.15 (前端框架库)
  2. vue-router ^4.1.0 (路由库)
  3. axios ^1.6.4 (请求库)
  4. ant-design (UI库)
  5. dayjs (时间处理库)
  6. echarts (可视化处理库)
  7. pinia (状态管理库)
  8. ...

其他依赖(未列举完全)

  1. lodash
  2. mockjs
  3. nprogress
  4. clipboard
  5. ...

三、改进建议

1.约定优于配置

目录结构冗长,建议封装工具脚手架,将各类配置抽离,统一管理项目中的配置文件,通过cli脚手架工具进行项目的测试、代码规范和风格检查及项目的构建,如下:

arduino 复制代码
├── .config
│   └── vite.config.ts
│   └── .env
│   └── .env.development
│   └── .env.production
│   └── jest.config.mjs
│   └── postcss.config.js
│   └── prettier.config.js
│   └── 其他配置文件...
├── src
├── tests
├── types
├── public
├── package.json
├── ...
json 复制代码
{
    "scripts": {
        "dev": "jeecgboot dev -p 3000 -h localhost",
        "build": "jeecgboot build:umd ...",
        "build:es": "jeecgboot build:es ...",
        "lint:style": "jeecgboot lint:style --scope scss/less/css"
        "lint:md": "jeecgboot lint:md",
        ....
    }
}
javascript 复制代码
pnpm run build:es
pnpm run lint:style

2. 构建jeecgboot生态链工具

前端代码,可以使用monorepo进行分别管理,划分出至少两个项目:

  1. jeecgboot-components

    通过对组件的单独封装和统一管理,隔离组件和业务B端的耦合,进而分离组件库。

  2. jeecgboot-vue

    业务的vue框架

  3. jeecgboot-react

    业务的react框架

  4. jeecgboot-cli

    jeecgboot生态的cli工具,可以包括以下内容:

    • 语法检查eslint
    • 代码规范检查
    • stylelint
    • jest
    • 打包工具配置等
    • 快速创建jeecgboot生态模板

3. 提取出的单独的组件,每个组件内分别测试,降低测试的粒度,确保组件的健壮性。

感觉components下的组件src此文件夹过于冗余了,目录结构虽然清晰但是,每一个组件下都有src文件夹,从感觉上来讲更符合规范,但是从代码上来讲src重复,可优化。

四、总结

  1. jeecg-boot-vue3 提高了我们团队的开发效率 ,整体使用下来非常流畅和方便,极大降低开发成本
  2. jeecg-boot-vue3 符合我对一个开源项目和jeecg团队的认真负责,开源精神的认可。
  3. 当然我相信随着社区的不断壮大和发展,jeecg-boot项目会发展的更加的好。

当然项目的发展和优化不是一蹴而就的。

文件内联减少请求数Tree-shaking , GZIP压缩CDN加速已经变成jeecg-boot用户所可以进行的优化。

展望

  1. js运行时?使用rust v8库 提供的运行时能力,减少无关运行时代码的注入和向上层提供高层次接口,可玩性非常高。
  2. 是否尝试使用Rust WASM 的能力对一些低层的组件进行进一步的抽取和封装
  3. 是否尝试推出React或者桌面端版本来提供更多的企业级需求。
  4. 是否尝试集成阿里旗下BizCharts,PC端个性化场景可视化方案。
相关推荐
莹雨潇潇10 分钟前
Docker 快速入门(Ubuntu版)
java·前端·docker·容器
Jiaberrr18 分钟前
Element UI教程:如何将Radio单选框的圆框改为方框
前端·javascript·vue.js·ui·elementui
Tiffany_Ho1 小时前
【TypeScript】知识点梳理(三)
前端·typescript
安冬的码畜日常2 小时前
【D3.js in Action 3 精译_029】3.5 给 D3 条形图加注图表标签(上)
开发语言·前端·javascript·信息可视化·数据可视化·d3.js
小白学习日记3 小时前
【复习】HTML常用标签<table>
前端·html
丁总学Java3 小时前
微信小程序-npm支持-如何使用npm包
前端·微信小程序·npm·node.js
yanlele3 小时前
前瞻 - 盘点 ES2025 已经定稿的语法规范
前端·javascript·代码规范
懒羊羊大王呀4 小时前
CSS——属性值计算
前端·css
DOKE4 小时前
VSCode终端:提升命令行使用体验
前端