122
社区成员




这个作业属于哪个课程 | 2302软件工程 |
---|---|
这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
这个作业的目标 | 个人技术总结 |
其他参考文献 | CSDN |
在Vue中,我们可以使用Axios来封装接口请求。Axios是一个基于Promise的HTTP客户端,可以在浏览器和Node.js中使用。
因为从开发到最终上线的过程中,API是需要经常更换的,为了我们更好的统一管理,所以需要将API封装起来。
这种封装方式不仅提高了代码的复用性和可维护性,还使得接口请求逻辑与UI逻辑分离,有助于构建更清晰、更易于管理的Vue应用。
在主目录下创建utils文件夹,并在其中新建request.js文件用于封装请求。
request.js代码如下:
import axios from "axios";
// 创建axios
const request = axios.create({
baseURL: 'http://服务器地址/...',
timeout: 15000, // 超时
});
//添加请求拦截器
request.interceptors.request.use(
function (config) {
config.headers['Access-Control-Allow-Origin'] = '*';
return config;
},
function (error) {
return Promise.reject(error);
}
);
//添加响应拦截器
request.interceptors.response.use(
function (response) {
//返回响应数据;
const data = response;
if (data) {
return Promise.resolve(data.data);
}
return response;
},
function (error) {
//返回响应错误
return Promise.reject(error);
}
);
export default request;
在主目录下创建api文件夹,在其中新建api.js接口文件。
api.js代码如下:
import request from '../utils/request'
import qs from 'qs';
export function login(data) {
return request.request({
method: "post",
url: `/login`,
headers: { 'content-type': 'application/x-www-form-urlencoded' },
data: qs.stringify(data),
})
}
在Vue组件中,导入API文件并使用封装的接口
以调用登录接口为例,login.vue代码如下:
<script>
import { login } from '@/api/api';
export default {
methods: {
userLogin() {
login(this.loginForm).then((res) => {
console.log(this.loginForm)
if (res.code == 200) {
//登录成功后的操作
} else {
alert('管理员编号或密码错误!');
return false;
}
});
}
}
}
</script>
问题描述: 请求服务器时间太长,超过设置的超时时间。
解决过程:
问题描述: 服务器要求特定的请求头格式,如Content-Type。
解决过程:
问题描述: 服务器返回的数据格式不一致或需要进行额外处理。
解决过程:
通过软件工程实践,我逐步掌握了在Vue中使用Axios进行接口封装的方法。封装接口不仅可以提高开发效率,还可以使代码更加模块化和易于维护。当然,在封装过程中可能遇到各种问题,通过查阅相关资料,找出相应的解决策略,就像打怪通关一样,我在解决问题的过程中积累开发的经验,提升自身的开发能力。在今后的学习和开发中,希望我能保持好学之心,不断学习,不断进步。