🚀作者简介
主页:水香木鱼的博客
专栏:后台管理系统、项目优化 能量:🔋容量已消耗1%,自动充电中…
笺言:用博客记录每一次成长,书写五彩人生。
📒技术聊斋
axios官方文档
vue.config.js配置 官方文档
(一)Axios 是什么?
Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中 。
它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。
在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests 。
(二)Axios 的特性
- 从浏览器创建
XMLHttpRequests - 从
node.js 创建 http 请求 - 支持
Promise API 拦截 请求和响应转换请求 和响应 数据取消 请求- 自动转换
JSON 数据 - 客户端支持防御
XSRF
(三)Axios 的安装
Ⅰ、使用 npm
npm install axios --save
Ⅱ、使用 yarn
yarn add axios --save
Ⅲ、使用 jsDelivr CDN
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
Ⅳ、使用 unpkg CDN
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
(四)封装Axios 的utils工具【request.js】
src下创建utils 文件夹【全部代码见 👇 Ⅵ 】
Ⅰ、导入axios
import axios from "axios";
Ⅱ、创建requests 函数
baseURL 【接口地址】timeout 【访问超时的时间ms,超过这个时间即访问失败】
const requests = axios.create({
baseURL: "",
timeout: 50000,
});
Ⅲ、添加请求拦截器【request】
requests.interceptors.request.use(
function (config) {
return config;
},
function (error) {
return Promise.reject(error);
}
);
Ⅳ、添加响应拦截器【response】
requests.interceptors.response.use(
function (response) {
return response;
},
function (error) {
return Promise.reject(error);
}
);
Ⅴ、导出到外部环境使用
export default requests;
Ⅵ、全部代码
import axios from "axios";
const requests = axios.create({
baseURL: "",
timeout: 50000,
});
requests.interceptors.request.use(
function (config) {
return config;
},
function (error) {
return Promise.reject(error);
}
);
requests.interceptors.response.use(
function (response) {
return response;
},
function (error) {
return Promise.reject(error);
}
);
export default requests;
(五)封装Axios 的 统一管理API
Ⅰ、src下创建api 文件夹
Ⅱ、封装testApi【根据接口类型去进行封装】
- url【地址】
- methods【请求方式】
get 、post 等
import requests from "../utils/request";
export const getTestList = () =>
requests({
url: "https://1xx.xx.xx.xx:xxxx/api/v1/data/dataSetApply/homePageList",
methods: "get"
});
(六)Axios 的全局调用
在main.js 中注册
import * as API from '@/api'
Vue.prototype.$API = API;
(七)Axios 的页面内调用【优先选择】
推荐方式二
方式一:使用beforeCreate 钩子函数
import * as API from '@/api'
beforeCreate(){
Vue.prototype.$API = API;
},
方式二:使用.then .catch 【常用】
<script>
import { getTestList } from "../api/testApi";
export default {
data() {
return {
testList: [],
traceIds: "",
};
},
mounted() {
this.handleListData();
},
methods: {
handleListData() {
getTestList()
.then((res) => {
const data = res.data.data;
this.testList = data;
console.log(this.testList, "测试数据");
})
.catch();
},
},
};
</script>
方式三:使用async await 【异步请求】
<script>
import { getTestList } from "../api/testApi";
export default {
data() {
return {
testList: [],
};
},
mounted() {
this.handleListData();
},
methods: {
async handleListData() {
let result = await getTestList();
if (result.status == 200) {
const data = result.data.data;
this.testList = data;
console.log(this.testList, "测试数据");
}
},
},
};
</script>
(八)数据请求成功
📓精品推荐
🔋前端element-ui组件库el-card卡片【hover效果与点击事件(点击无效用@click.native=““)解决】
🔋vue实现【接口数据渲染随机显示】和【仅显示前五条数据】
🔋vue实现刷新页面随机切换背景图【适用于登陆界面】
🔋vue封装返回顶部组件【cv可用】
🔋vue实现keep-alive页面缓存【三步骤配置,一步到位】
木鱼谢语:感谢各位技术大牛们的点赞👍收藏🌟,每一期都会为大家带来快速适用于业务的文章,让大家做到cv即可。
|