前端总体概述
前言:本文基于若依前后端分离版本(Spring Boot 3.3.0 + Vue 3 + Activiti 8.1.0)进行改造,相关教程可以在网上找到。在撰写此博客期间,笔者刚刚开始接触 Java Web,本系列下的文章内容包含大量“个人初期”视角,注意鉴别。
项目文件夹预览
前端项目的基本目录结构我将参照若依,但是具体的演示截图,我将使用我自己的项目。一般情况下我们只需要看下图中的四个部分就可以,下文依次进行。
依赖——package.json
此部分并无过多解释,重点集在依赖项的书写方式、版本对应关系,引擎打包工具等设定,基于ruoyi的二次开发的情况下,可以暂且不深入研究,直接套用即可。截取部分展示。
1 | "scripts": { |
项目配置
vite.config.js
目前需要注意的有两个地方:
- 前端服务端口: port
- 后端转发端口: ‘/dev-api’
1 | // vite 相关配置 |
前端的这些页面也需要一个(IP+端口)去访问(浏览器访问这个端口80看到的就是前端网站咯)
后端转发端口就是后端服务器所在的位置,此处是一个类似于Key:Value的形式,项目内部可以直接使用。
baseURL: process.env.VUE_APP_BASE_API
我们一直在说前端转发到后端,转发的地址,就是上一段我们要写明的后端的(IP+端口),本地开发我们只需要关注端口不要冲突(spring boot自带的tomcat服务器,端口默认:8080,也可更改)
在ruoyi-ui/src/api文件夹下全是前端想要找后端办事的方法,在这些方法里面我们写的请求路径都是不完整的,例如登录方法:
ruoyi-ui/src/api/login.js
1 | export function login(username, password, code, uuid) { |
这个request经过拦截器修修改改,其中就包括把baseURL添加到方法的url前面。最终被转发的路径就是:baseURL + /login
ruoyi-ui/src/utils/request.js
1 | const service = axios.create({ |
前端向后端发送的请求都要经过axios这个东西(类也好、函数也罢,反正是个工具),这个工具在request.js文件中写了两个方法,对于所有要发出去的请求,拦下来先检查,添加完整路径、添加信息,再放行转发;对于后端来的响应,也进行检查,检查通过再给到具体的页面。
这里面还有一个东西;process,算是nodejs的一个关键字,用来管理一些全局的常量。对于常用的公共变量进行定义,在此处着重体现就是预定义后端的套接字(IP+端口)
水果篮子——public/index.html
明确一个点,Vue文件都是些“组件”,组件都得放入一个筐里才能显示,而这个筐就是public/index.html,特别注意这个html文件中的id=“app”组件,Vue3的项目通过更换不断替换这个模块,或者说,将不同的Vue页面放到这个组件上,实现多页面的展示。
1 | <body> |
各色水果(以及水果包装袋)
- api部分已经解释过了,此次不展开。反正就是一些找后端的函数罢了。
- router,路由,现在需要把哪个水果放进筐里进行展示,就是它决定的。
- utils中主要就是request.js,关于拦截器的一些设置。前文有解释,暂且足够了。
- views,各色水果 == 各个不同的页面。
- App.vue,暂且可以理解为水果包装袋,router的结果先装进这个袋子里。
- main.js,准备一些装饰品(函数工具等)放入水果篮(index.html),把包装好的App.vue挂载到html的app组件上。