【若依项目-RuoYi】掌握若依前端的基本流程

  • 搞毕设项目,使用前后端分离技术,后端springBoot,前端vue3+element plus。
  • 自己已经写好前端与后端代码,但想换一个前端界面所以使用到了若依,前前后后遇到许多坑,记录一下,方便之后能够快速回忆。【本文章主要讲解前端部分(vue3),请耐心跟着文章的流程走,后端使用的是自己的工程,需要看后端的小伙伴可以看看其他的文章】

记于2024-7-30

若依官网:RuoYi 若依官方网站 |后台管理系统|权限管理系统|快速开发框架|企业管理系统|开源框架|微服务框架|前后端分离框架|开源后台系统|RuoYi|RuoYi-Vue|RuoYi-Cloud|RuoYi框架|RuoYi开源|RuoYi视频|若依视频|RuoYi开发文档|若依开发文档|Java开源框架|Java|SpringBoot|SrpingBoot2.0|SrpingCloud|Alibaba|MyBatis|Shiro|OAuth2.0|Thymeleaf|BootStrap|Vue|Element-UI||www.ruoyi.vip


1、环境准备

1.1、前端下载

因为我原前端使用的技术栈是vue3+element plus,所以选择官网内项目扩展中的RuoYi-Vue3:https://github.com/yangzongzhuan/RuoYi-Vue3

需要注意官网内分离版的技术栈:

  • Vue 2.6.x
  • Axios 0.21.x
  • Element 2.15.x

当时没注意直接使用官网分离版中的项目,后面把原前端的代码拷贝过去出了问题,原因是版本过低需要升级,而且就算升级后代码语法的差异也需要大作更改,所以根据需求选择。

1.2、后端下载

后端可以直接下载官网中的项目:RuoYi-Vue: ?? 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本

里面包含了所需的后端工程以及(Vue 2.6.x)前端工程 ruoyi-ui。

需要多看官网文档,包含了前端与后端工程的目录结构说明,方便快速掌握。


2、从登录到首页的前端流程

  1. 将前端与后端工程分别运行起来。
  2. 了解前端工程目录基本作用
  3. 主要操作都在src文件夹中。

(1)修改 vite.config.js 文件中proxy的后端ip以及端口(使用反向代理实现跨域请求)

(2)在 src -> api 中定义好自己的请求js:

(3)登录页面:src -> views -> login.vue:

import引入user文件中的userUserStore对象,该文件主要写执行请求方法的action。

(4)执行login.vue中的登录方法后调用 store -> modules -> user 中的后端登录接口,成功后使用cookie保存token

(5)执行login.vue的登录方法成功后进行路由跳转router.push(…),但会被 src ->permission.js 文件内的路由前置守卫拦截路由跳转,需要执行两个请求:

  • userUserStore对象中的获取用户信息接口(src/store/modules/user)
  • userPermissionStore对象中的获取路由菜单接口(src/store/modules/permission)

(5.1)获取用户信息 getInfo()

【需要注意获取用户信息后需要填写一些信息,因为每次加载完路由会 next({…to,replace: true}) 更新页面,发现有token,但是没用户信息,就会重复触发调用接口请求,出现循环执行两接口造成浏览器白屏问题】

可以根据需要写一些静态数据【具体的可以查看若依后端接口查看作用】

this.roles = [‘admin’] // 菜单权限
this.permissions = [‘*😗😗’] //按钮权限

this.id = data.id // 用户id
this.name = data.name // 用户姓名
this.avatar = avatar // 用户头像

(5.2)获取路由菜单表信息 generateRoutes()

该action方法会调用后端接口(src -> api -> menu.js)获取菜单表

路由表结构(可以参考,但具体以若依后端传递的菜单结构为准,可以在前端这文件使用控制台输出查看)【存在其他奇奇怪怪bug,需要根据自己项目去调试,最好是一次过】:

{"code": 200,"message": "操作成功","data": [{"name": "system","path": "/system",  // 需要注意父菜单path需要加/,否则会找不到组件报404"hidden": false,    // 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现"redirect": "noRedirect", // 重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击"component": "Layout","alwaysShow": true, // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面"meta": {"title": "系统管理","icon": "system","noCache": false, // 设置为true,则不会被 <keep-alive>缓存"link": null     // 内链地址(http(s)://开头)},"children": [{"name": "Role","path": "Role",    // 子菜单path不需要加/"hidden": false,"component": "system/sysUser","meta": {"title": "用户管理","icon": "user","noCache": false,"link": null}},{"name": "User","path": "User","hidden": false,"component": "system/sysRole","meta": {"title": "角色管理","icon": "peoples","noCache": false,"link": null}}]},{"name": "product","path": "/product","hidden": false,"redirect": "noRedirect","component": "Layout","alwaysShow": true,"meta": {"title": "商品管理","icon": "shopping","noCache": false,"link": null},"children": [{"name": "category","path": "category","hidden": false,"component": "product/category","meta": {"title": "分类管理","icon": "404","noCache": false,"link": null}}]}]
}

3、修改若依框架图标与文字

若依RuoYi框架log图标与文字怎么改?_若依的图标文字-CSDN博客

3.1、修改菜单栏上方图标

图片路径: /src/assets/logo/logo.png

3.2、修改菜单栏上方文字

文件路径:/src/layout/components/Sidebar/Logo.vue

3.3、修改窗口标签图标

图标路径:/public/favicon.ico #推荐尺寸64*64

3.4、修改窗口标签文字

文件目录:
/.env.development
/.env.production
/.env.staging
推荐全部修改,因为根据环境不同

3.5、修改侧边栏颜色

文件目录:
/src -> assets -> styles ->variables.module.scss

3.6、免费图片转换网站

在线转换图像文件


4、出现的bug

4.1、RuoYi点击菜单出现空白页面,无报错

解决:RuoYi点击菜单出现空白页面,无报错_页面在菜单点击空白-CSDN博客

若依(vue3版本),进入首页后选择左侧菜单栏会出现切换菜单或者tab 页面空白的情况,

刷新页面后又恢复正常。

vue3版本的若依框架存在一些bug,在srclayoutcomponentsAppMain.vue中transition加跳转动画,keep-alive用作缓存,因为同时使用了transition和keep-alive,并在组件内又使用了transition导致的。

解决方案:

1、在keep-alive外包裹上div(推荐)

<router-view v-slot="{ Component, route }"><transition:duration="{ enter: 800, leave: 100 }"mode="out-in"name="el-fade-in-linear"><div :key="route.path"><keep-alive :include="cachedViews"><component :is="Component" :key="route.path" /></keep-alive></div></transition></router-view>

2、直接注释掉transition,但这样就没有菜单切换动画了

<router-view v-else v-slot="{ Component, route }"><keep-alive :include="cachedViews"><component :is="Component" :key="route.path" /></keep-alive>
</router-view>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/63836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像边缘检测示例(综合利用阈值分割、数学形态学和边缘检测算子)

一、问题 读入一副灰度图像&#xff08;如果是彩色图像&#xff0c;可以先将其转化为灰度图像&#xff09;&#xff0c;然后提取比较理想的灰度图像边缘。这里以moon.tif为例。 二、算法 大家一开始容易想到直接利用MATLAB的内置函数edge并采用不同边缘提取算子进行边缘提取&a…

R语言的数据结构-向量

【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言编程_夏天又到了的博客-CSDN博客 在R语言中&#xff0c;数据结构是非常关键的部分&#xff0c;它提…

集成方案 | Docusign + 泛微,实现全流程电子化签署!

本文将详细介绍 Docusign 与泛微的集成步骤及其效果&#xff0c;并通过实际应用场景来展示 Docusign 的强大集成能力&#xff0c;以证明 Docusign 集成功能的高效性和实用性。 在现代企业运营中&#xff0c;效率和合规性是至关重要的。泛微作为企业级办公自动化和流程管理的解决…

Docker Compose应用实战

文章目录 1、使用Docker Compose必要性及定义2、Docker Compose应用参考资料3、Docker Compose应用最佳实践步骤1_概念2_步骤 4、Docker Compose安装5、Docker Compose应用案例1_网站文件准备2_Dockerfile文件准备3_Compose文件准备4_使用docker-compose up启动容器5_访问6_常见…

51c大模型~合集88

我自己的原文哦~ https://blog.51cto.com/whaosoft/12805165 #Number Cookbook 数字比你想得更复杂——一文带你了解大模型数字处理能力的方方面面 目前大语言模型&#xff08;Large Language Models, LLMs&#xff09;的推理能力备受关注。从思维链&#xff08;Chain of…

STP(生成树协议)

STP的基本概念 概述 STP是一个用于局域网中消除环路的协议。运行该协议的设备通过彼此交互信息而发现网络中的环路&#xff0c;并对某些接口进行阻塞以消除环路。STP在网络中运行后会持续监控网络的状态&#xff0c;当网络出现拓扑变更时&#xff0c;STP能够感知并且进行自动…

GLM-4-Plus初体验

引言&#xff1a;为什么高效的内容创作如此重要&#xff1f; 在当前竞争激烈的市场环境中&#xff0c;内容创作已成为品牌成功的重要支柱。无论是撰写营销文案、博客文章、社交媒体帖子&#xff0c;还是制作广告&#xff0c;优质的内容不仅能够帮助品牌吸引目标受众的注意力&a…

Jetpack Compose赋能:以速破局,高效打造非凡应用

Android Compose 是谷歌推出的一种现代化 UI 框架&#xff0c;基于 Kotlin 编程语言&#xff0c;旨在简化和加速 Android 应用开发。它以声明式编程为核心&#xff0c;与传统的 View 系统相比&#xff0c;Compose 提供了更直观、更简洁的开发体验。以下是对 Android Compose 的…

MinerU:PDF文档提取工具

目录 docker一键启动本地配置下载模型权重文件demo.py使用命令行启动GPU使用情况 wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile docker build -t mineru:latest .docker一键启动 有点问题&#xff0c;晚点更新 本地配置 就是在Python环境中配置依赖和…

UE4_控件蓝图_制作3D生命血条

一&#xff1a;效果图如下&#xff1a; 二、实现步骤&#xff1a; 1、新建敌人 右键蓝图类 选择角色&#xff0c; 重命名为BP_Enemytest。 双击打开&#xff0c;配置敌人网格体 修改位置及朝向 效果如下&#xff1a; 选择合适的动画蓝图类&#xff1a; 人物就有了动作&#x…

【深度学习】深刻理解ViT

ViT&#xff08;Vision Transformer&#xff09;是谷歌研究团队于2020年提出的一种新型图像识别模型&#xff0c;首次将Transformer架构成功应用于计算机视觉任务中。Transformer最初应用于自然语言处理&#xff08;如BERT和GPT&#xff09;&#xff0c;而ViT展示了其在视觉任务…

用于日语词汇学习的微信小程序+ssm

日语词汇学习小程序是高校人才培养计划的重要组成部分&#xff0c;是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。本学生所在学院多采用半手工管理日语词汇学习小程序的方式&#xff0c;所以有必要开发日语词汇…

ichunqiu-2024年春秋杯网络安全联赛夏季赛-brother

1.打开题目&#xff0c;看到题目我就想到了再后面加一个ls&#xff0c;结果回显了ls&#xff0c;然后又想到会不会是模板注入&#xff0c;尝试{{7*7}}&#xff0c;然后页面返回了49&#xff0c;说明存在模板注入 如下&#xff0c;判定为模板注入 看一下系统环境配置 然后看可…

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 数据处理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 数据处理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…

QT从入门到精通——Qlabel介绍与使用

1. QT介绍——代码测试 Qt 是一个跨平台的应用程序开发框架&#xff0c;广泛用于开发图形用户界面&#xff08;GUI&#xff09;应用程序&#xff0c;也支持非图形应用程序的开发。Qt 提供了一套工具和库&#xff0c;使得开发者能够高效地构建高性能、可移植的应用程序。以下是…

Edge SCDN深度解析,边缘安全加速的创新实践

边缘安全加速&#xff08;Edge Secure Content Delivery Network&#xff0c;SCDN&#xff09;是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术&#xff0c;智能调度使用户就近获取所需内容&#xff0c;为…

WebRTC Simulcast 大小流介绍与优化实践

Simulcast 是 WebRTC 中的一种标准化技术 &#xff0c;简称大小流。通过 Simulcast&#xff0c;客户端可以同时发送同一视频的多个版本。每个版本都以不同的分辨率和帧率独立编码&#xff0c;带宽较多的拉流端可以接收较高质量的视频流&#xff0c;带宽有限的拉流端则可以接收较…

40分钟学 Go 语言高并发:服务监控与追踪

服务监控与追踪 一、知识要点总览 模块核心内容技术选型难度监控指标请求量、响应时间、错误率、资源使用Prometheus Grafana中链路追踪分布式调用链、性能瓶颈分析Jaeger, OpenTelemetry高日志处理日志收集、分析、存储ELK Stack中告警系统告警规则、通知渠道、告警分级Ale…

vue3 使用 konva

1&#xff1a;安装 npm install vue-konva konva --save 在main.ts 里面引入 import VueKonva from vue-konva; app.use(VueKonva); 2&#xff1a;效果图 3&#xff1a;直接粘贴复制就能用你 &#xff08;重要的地方做了备注&#xff09; <template><div st…

Spring Boot集成Knife4j文档工具

Knife4j 搭建 Knife4j环境的的搭建和Swagger一样都比较简单&#xff0c;只需要极简的配置即可。 maven依赖 我使用的是较高版本的基于openapi规范的依赖包&#xff0c;OpenAPI2(Swagger)规范是Knife4j之前一直提供支持的版本&#xff0c;底层依赖框架为Springfox。 此次在4…