SpringBoot&Vue&EmementUI前后端分离整合、统一封装axios、跨域配置

简介: SpringBoot&Vue&EmementUI前后端分离整合、统一封装axios、跨域配置

🌟Vue项目创建


1.进入到要创建项目的文件夹,目录输入CMD,打开黑白命令窗口。我的目录是在E:/VueWorkspacke。

a6412b5537c4dc7ab03f215fcd325e48_3eb14960a92046a3a550afd6889a27da.png

2.输入vue ui打开vue项目管理web界面。

a7061598508546cee170ec4dd0188f87_c08a1873b9564f138b0c7f3400641fdc.png

3.进入到红框的路径,进行项目创建。

27de0001d410e590fbcf64fd79ecde1c_8066d9daf18d4786a7c7a13f95a659f8.png

4.点击在此创建项目,输入项目相关信息,并点击下一步

e88dda87878edae47b7322c47391f426_c229ea9add094754ad350620989633b6.png

5.选择手动,并点击下一步。

3d8f3e0a3b4e7e5502cd9eee2338cf9b_08b42d27b82a4add99b6d9c0fafbede7.png

6.选择加入的依赖,也可以后期项目中手动添加。

3c3456855781bd4a3b916f4afa42ec5d_ff180d74dbca4c2bacb2fb74d6169fd4.png


7.创建项目,不保存预设。

3cfabcc399c9d9e9e631a56e9cae35ef_d732111cd82b4e488fe6adf1249c1e01.png

8ced9fcecefd1299150a6ea31b3d9f55_b015251bba6842478fac94a398072101.png


8.创建成功后就可以在路径中看到项目。

e18d9eae36da643247647211f3893168_c316216ad6fb43cfa8cab282e902401d.png


🌟Vue整合ElementUI


官网:ElementUI


1.打开项目,终端执行命令安装emelentui。


npm i element-ui -S


2.main.js中添加以下代码。


//导入ElementUI
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
//使用ElementUI
Vue.use(ElementUI);


3.package.json中的eslintConfig中的rules添加代码,不然启动时报错。


"eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended",
      "plugin:prettier/recommended"
    ],
    "parserOptions": {
      "parser": "@babel/eslint-parser"
    },
    "rules": {
    //只需要改动这里即可。
   "vue/multi-word-component-names": "off",
      "prettier/prettier": "off"
  }
  },


4.效果验证。官网复制相关样式,这里复制一个按钮到HomeView.vue。


<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png" />
    <HelloWorld msg="Welcome to Your Vue.js App" />
  <el-button type="warning">警告按钮</el-button>
  </div>
</template>


5.启动项目,终端输入npm run serve

305af9e112d4a80944f582776fac4d60_163b02c17f3840f0b1a300b35486812c.png


🌟统一封装request.js


1.安装axios。npm i axios -S

2.创建request.js文件,放到utils目录下,代码如下


import axios from 'axios'
const request = axios.create({
  baseURL: 'http://localhost:8081',  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    timeout: 5000
})
// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
request.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json;charset=utf-8';
 // config.headers['token'] = user.token;  // 设置请求头
    return config
}, error => {
    return Promise.reject(error)
});
// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
    response => {
        let res = response.data;
        // 如果是返回的文件
        if (response.config.responseType === 'blob') {
            return res
        }
        // 兼容服务端返回的字符串数据
        if (typeof res === 'string') {
            res = res ? JSON.parse(res) : res
        }
        return res;
    },
    error => {
        console.log('err' + error) // for debug
        return Promise.reject(error)
    }
)
export default request


3.main.js中全局配置封装的request。


import request from "./utils/request";
Vue.prototype.request = request


4.创建接口请求。


methods: {
    submitForm() {
      this.$refs['elForm'].validate(valid => {
        if (valid) {
          //后端接口
            this.request.post("/api/v1/redis/generate", this.formData).then(res => {
            if(res.code === '0') {
              this.$message.success("生成成功")
            } else {
              this.$message.error(res.msg)
            }
          })
        }
      })
    },


🌟跨域配置


后端项目创建这里就省略了。

1.在后端项目中创建跨域配置类CrosConfig。


@Configuration
public class CorsConfig {
    // 当前跨域请求最大有效时长。这里默认1天
    private static final long MAX_AGE = 24 * 60 * 60;
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
        corsConfiguration.setMaxAge(MAX_AGE);
        source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
        return new CorsFilter(source);
    }
}


2.application.properties配置文件添加配置。


server.port=8081


🌟写在最后


有关于SpringBoot&Vue&EmementUI前后端分离整合、统一封装axios、跨域配置到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。


目录
相关文章
|
1月前
|
资源调度 JavaScript API
vue3封装城市联动组件
vue3封装城市联动组件
|
2月前
Vue3——基于tdesign封装一个通用的查询组件
Vue3——基于tdesign封装一个通用的查询组件
97 3
|
2月前
|
JavaScript API 开发者
vue自定义Hooks函数使用和封装思想
【8月更文挑战第8天】vue自定义Hooks函数使用和封装思想
101 1
|
11天前
|
JavaScript
Vue2.0、Vue3.0分别使用v-model封装组件[Vue必会]
本文介绍了在Vue 2和Vue 3中如何使用`v-model`来实现组件间的双向数据绑定,包括在Vue 2中使用`value`和`input`事件,以及在Vue 3中使用`modelValue`和`update:modelValue`事件的方法。
55 22
|
6天前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
22 6
|
2月前
|
JavaScript 测试技术 持续交付
在vue中封装第三方组件的标准
在Vue.js项目中,第三方组件库虽能提升开发效率与用户体验,但直接使用可能导致代码结构混乱和样式冲突。为此,本文介绍如何优雅封装第三方组件,包括封装的目的、准备步骤、具体实现方法及处理样式冲突的策略。通过创建专门的封装组件、设计简洁的接口以及有效地管理样式,不仅能统一应用风格,还能显著提高代码的可维护性和可复用性。此外,还提供了封装Element UI Button组件的具体示例,帮助开发者更好地理解封装流程。
|
2月前
|
JavaScript UED
以 Vue 3 项目为例,多个请求下如何全局封装 Loading 的展示与关闭?其中大有学问!
以 Vue 3 项目为例,多个请求下如何全局封装 Loading 的展示与关闭?其中大有学问!
|
2月前
|
JavaScript
如何通过点击商品的信息(图片或者文字)跳转到更加详细的商品信息介绍(前后端分离之Vue实现)
该博客文章介绍了如何在Vue 2框架下实现前后端分离的商品信息展示和详情页跳转,包括排序筛选、详情展示、加入购物车和分享功能。
如何通过点击商品的信息(图片或者文字)跳转到更加详细的商品信息介绍(前后端分离之Vue实现)
|
2月前
|
JavaScript API 数据格式
【Vue 3】如何封装一个超级好用的 Hook!
【Vue 3】如何封装一个超级好用的 Hook!
|
2月前
|
JavaScript
Vue封装分页下拉选择器的组件
该组件名为,它将整合Element UI的下拉选择器和分页组件,以实现一个功能丰富的下拉选择器。用户可以通过搜索来过滤选项,并通过分页来浏览结果。
下一篇
无影云桌面