如何从 vue-element-admin 迁移到 Fantastic-admin
// FIXME 链接更新
如果你还不知道 Fantastic-admin 是什么,那么我先用几张预览图给大家了解一番。
![]()  | 
![]()  | 
![]()  | 
![]()  | 
![]()  | 
![]()  | 
看来预览图,如果你感兴趣,可以点这里来详细了解并试用,这是一款完成度极高,开箱即用的后台框架,并且刚刚发布了 Vue3 版本支持。
回归正题
vue-element-admin 做为一款知名度相当高的后台框架,是很多刚接触后台开发的开发人员首选框架,但由于其作者似乎并不太关注这款作品,并且也无任何 Vue3 版本的相关动向,导致在 Github 仓库里堆积了近千个未关闭的 issues 。
开发者在使用过程中遇到的很多问题,在其社区里提供的解决方案都是需要修改框架源码,这也让市面上出现了很多基于 vue-element-admin 的魔改版本。但大部分也只是小修小改,如果要修改到框架本身的设计,都是牵一发而动全身的。这也是我早期使用 vue-element-admin 开发后的一些感触,于是才下定决定自己写一套可高度配置化的后台框架。
虽然上面说的已经是我几年前的经历了,但相信现在依旧有很多开发者还在使用 vue-element-admin ,有的想找替代产品,但又嫌迁移工作太麻烦,毕竟迁移工作的前提是要了解两套框架的差异,才可以确保迁移工作的正常进行。
那么这篇文章,将会尽可能详细的介绍 vue-element-admin 和 Fantastic-admin 在使用上的差异,给还在犹豫是否要替换 vue-element-admin 的小伙伴一点点参考。
因为 Fantastic-admin 已经提供了 Vue3版本 ,所以本篇文章会以 Vue3版本 为最终迁移目标。当然 Vue2版本 在大部分情况下也适用。
准备工作
首先你需要准备一份 Vue3版本 的模版源码,并确保能在本地正常启动运行。
# 最简单的方式,克隆一份源码到本地
git clone -b template https://gitee.com/hooray/fantastic-admin.git
# 然后进入项目
cd fantantic-admin
# 安装依赖
pnpm install
# 运行
pnpm run dev
其次建议你先完整阅读一遍 Fantastic-admin 的文档后,对其有个大致的了解后,再阅读下面的差异。
差异
环境配置
得益于 vue-element-admin 的功能简单,环境配置里只能设置 VUE_APP_BASE_API ,在 Fantastic-admin 里对应的是 VITE_APP_API_BASEURL 这个参数。
当然在 Fantastic-admin 还提供了页面标题、调试工具、构建压缩等一系列的配置,详细可阅读《配置 - 环境配置》。
框架配置
vue-element-admin 一共只提供了 6 个配置项(title showSettings tagsView fixedHeader sidebarLogo errorLog),并且大部分都是界面布局上的设置,建议这部分可直接参考 Fantastic-admin 的框架配置文件,我们提供了更丰富的界面布局设置。
主题
很遗憾,vue-element-admin 没有提供主题配色的功能,而 Fantastic-admin 里可以自定义主题配色方案,详细可阅读《主题》。
全局资源
SVG 图标
vue-element-admin 将 svg 文件存放在 ./src/icons/svg/ 目录下,这部分的 svg 文件可直接拷贝到 Fantastic-admin 的 ./src/assets/icon/ 目录下,并且我们还提供了 <svg-icon /> 组件方便直接使用,详细可阅读《全局资源 - SVG图标》。
图片
vue-element-admin 将图片存放在 ./src/assets/ 目录下,这部分的图片资源可直接拷贝到 Fantastic-admin 的 ./src/assets/images/ 目录下即可。
精灵图
这是 Fantastic-admin 单独提供的特性,如果在项目中使用了较多尺寸不大的素材图,你可以考虑使用精灵图的方式将多张小图合并成一张大图,通过 css 背景图定位的方式去展示使用,详细可阅读《全局资源 - 精灵图》。
样式
vue-element-admin 将样式存放在 ./src/styles/ 目录下,这个目录存放的基本是和框架相关的样式,迁移过程中基本是无需关注的,你只需要关注你新增的样式文件,将这些文件拷贝到 Fantastic-admin 的 ./src/assets/styles/ 目录下,并在相关使用到的地方引入即可。
另外 Fantastic-admin 还提供了一个 ./src/assets/styles/resources/ 目录用来单独存放 SCSS 资源,这个目录下的文件会被框架自动引入,可在页面上直接使用,详细可阅读《全局资源 - 样式》。
组件
vue-element-admin 将组件存放在 ./src/components/ 目录下,并且使用时需要单独注册,而 Fantastic-admin 提供的全局组件会在使用的时候自动注册,效果与 vue-element-admin 一致,但使用体验却更棒。你只需将全局组件同样放到 Fantastic-admin 的 ./src/components/ 目录下即可在页面中直接使用,详细可阅读《全局资源 - 组件》。
与服务端交互
vue-element-admin 的 ./src/utils/request.js 对应了 Fantastic-admin 的 ./src/api/index.js 文件,它们都对 axios 进行了封装,便于统一处理 POST 和 GET 请求,你可以根据原有的配置逐行迁移代码。
另外在 vue-element-admin 的 ./src/api/ 目录下存放了以模块为维度拆分的独立文件,方便统一管理不同模块的所有接口请求,这在大型项目中是很有必要的,而 Fantastic-admin 并未提供特定目录,如果你有这个需求,可以自行建立一个文件夹用来管理这部分文件。
路由
Fantastic-admin 借鉴了 vue-element-admin 通过路由生成导航栏的思路,都是在路由里增加导航配置参数,只不过 Fantastic-admin 将额外的导航配置参数统一都放在的 meta 对象中。下面这个对比表格能帮助里快速了解 vue-element-admin 和 Fantastic-admin 对应的配置项。
| vue-element-admin | Fantastic-admin | 说明 | 
|---|---|---|
| hidden | meta.sidebar | 是否在导航栏里显示 | 
| alwaysShow | / | 并未提供该设置,因为在 Fantastic-admin 里自动处理的 | 
| meta.roles | meta.auth | Fantastic-admin 可兼容 vue-element-admin 的权限设计模式,并提供了更高级的权限模式 | 
| meta.title | meta.title | 导航标题 | 
| meta.icon | meta.icon | 导航图标 | 
| meta.noCache | meta.cache | vue-element-admin 的 noCache 与 Fantastic-admin 的 cache 都是对页面缓存的配置,但背后的逻辑和使用方式却完全不一样 | 
| meta.breadcrumb | meta.breadcrumb | 是否在面包屑导航里显示 | 
| meta.affix | / | 标签页是否固定,在 Fantastic-admin 中,标签页是可以通过右键标签页手动设置固定,而非在路由配置里固定写死 | 
| meta.activeMenu | meta.activeMenu | 高亮指定导航 | 
除了以上 vue-element-admin 提供的配置项之外,Fantastic-admin 还提供了很多额外的配置项,详细可阅读《路由 - 导航配置》。
页面缓存
在 Fantastic-admin 里你可以理解只有二级路由缓存,因为我们提供了一个特性,不管路由配置多少层级,最终都会被处理成二级,但是可以放心,仅仅是路由被处理成二级,而导航和面包屑导航依旧是保持原有的层级结构展示。
这么做的目的也是为了彻底解决多级路由缓存的问题,相信你一定在 vue-element-admin 里遇到过这类问题,社区里的解决方案也五花八门,始终没有一个统一的解决方案。
所以 Fantastic-admin 提供了一个一劳永逸的解决办法,详细可阅读《页面缓存》。
最后
本篇迁移文档仅对整体做简单说明,迁移项目毕竟是个庞大工程,过程中难免会出现各种无法预测的问题,建议可以加讨论群自由讨论寻求帮助。
如何从 vue-element-admin 迁移到 Fantastic-admin的更多相关文章
- 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚
		
新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...
 - 循序渐进VUE+Element 前端应用开发(9)--- 界面语言国际化的处理
		
我们开发的系统,一般可以不用考虑语言国际化的问题,大多数系统一般是给本国人使用的,而且直接使用中文开发界面会更加迅速 一些,不过框架最好能够支持国际化的处理,以便在需要的时候,可以花点时间来实现多语言 ...
 - 循序渐进VUE+Element 前端应用开发(17)--- 菜单资源管理
		
在权限管理系统中,菜单也属于权限控制的一个资源,应该直接应用于角色,和权限功能点一样,属于角色控制的一环.不同角色用户,登录系统后,出现的系统菜单是不同的.在VUE+Element 前端中,我们菜单结 ...
 - 基于vue(element ui) + ssm + shiro 的权限框架
		
zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目 ...
 - Vue学习笔记-基于CDN引入方式简单前后端分离项目学习(Vue+Element+Axios)
		
一 使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7 (Windows x86- ...
 - Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
		
Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成) 动态表单生成 ElementUI官网引导 Element表单生成 Element动态增减表单,在线代码 关键配置 templa ...
 - 自搭的一个系统框架,使用Spring boot+Vue+Element
		
基于:jdk1.8.spring boot2.1.3.vue-cli3.4.1 特性: ~ 数据库访问使用spring data jpa+alibaba druid ~ 前后端数据交互使用 ...
 - 分享一个自搭的框架,使用Spring boot+Vue+Element UI
		
废弃,新的:https://www.cnblogs.com/hackyo/p/10453243.html 特点:前后端分离,可遵循restful 框架:后端使用Spring boot,整合了aop.a ...
 - 转:vue+element实现树形组件
		
项目中需要用到树形组件,在网上发现一个用vue+element实现的树形组件,现在记录下: demo地址:https://github.com/wilsonIs/vue-treeSelect
 - 前端小菜鸡使用Vue+Element笔记(一)
		
关于使用Vue+Element的项目简介~ 最近因为项目组缺前端人员,所以自己现学现做页面,先把前后台功能调通 觉得前端可真的是不容易呀哎呀~ 首先记录一下相关的Vue入门的教程: vue环境搭建示例 ...
 
随机推荐
- OpenFaaS实战之三:Java函数
			
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
 - ML - 常用数学符号
			
关系运算符: ±:\pm ×:\times ÷:\div ∣:\mid ∤:\nmid ⋅:\cdot ∘:\circ ∗:\ast ⨀:\bigodot ⨂:\bigotimes ⨁:\bigopl ...
 - Redis主从复制那点事
			
 我们在 Redis持久化机制你学会了吗?学习了AOF和RDB,如果Redis宕机,他们分别通过回放日志和重新读入RDB文件的方式恢复数据,从而提高可靠性.我们今天来想这么一个问题,假如我们 ...
 - Python基础之控制台打印不同颜色字符串
			
参考文章:https://www.cnblogs.com/daofaziran/p/9015284.html 打印各种颜色的文字,但是需要传入文字 print_color.py "" ...
 - Pycharm关联gitlab(http方式)
			
Pycharm支持关联gitlab仓库,关联后对远端项目的克隆和提交都很方便.当初笔者在关联时遇到了很多坑,网上也没找到相关解决办法,所以在这里分享下完整的关联过程. 一.安装git 下载地址http ...
 - 【GCC编译器】Swing Modulo Scheduling
			
1. SMS 在 GCC 中的实现 1.1. 一些基本概念 (1)软流水(Software pipelining )是一种通过重叠不同迭代的指令,使其并行执行,从而改进循环中指令调度的技术.关键思想是 ...
 - html拖动元素排序(插件版)
			
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 < ...
 - DL基础补全计划(五)---数值稳定性及参数初始化(梯度消失、梯度爆炸)
			
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
 - Java练习——加减乘除计算器实现
			
Java练习--计算器(加减乘除) package method; import java.util.Scanner; /* 写一个计算器 实现加减乘除四个功能 并且能够用循环接收新的数据,通 ...
 - Http Request Smuggling - Note
			
http请求走私漏洞 访问Burp靶场速度感人..都要哭了(如果没有账户的先创建账户) 基础补充 pipeline http1.1有了Pipeline,就不需要等待Server端的响应了.浏览器默认不 ...
 
			
		




