当前位置: 首页 > news >正文

vue开发,axios网络请求框架基本用法和封装

axios安装

npm install axios

axios基本用法

  • 默认的get请求,参数用params追加,多个参数通过json对象的方式,例如params:‘{type:“home”,page:1}’
axios({url: 'https://api.videolog.net.cn/baidu/token',params: ''
}).then(value => {console.log("1.默认的get请求:", value.data)
})
  • post方式及添加参数data,data里可以是一个json对象
axios({url: 'https://api.videolog.net.cn/baidu/wenxin',method: 'POST',data: 'hello'
}).then(value => {console.log("1.默认的post请求:", value.data)
})

axios常用方法

  • post请求
axios.post("https://api.videolog.net.cn/baidu/wenxin", "vue").then(value => {console.log("2.post请求测试:"+value.data.data)}).catch(function (error) {// 处理错误console.log(error);});
  • get请求
axios.get("https://api.videolog.net.cn").then(value => {console.log("3.get请求测试"+value.data)}).catch(function (error) {// 处理错误console.log(error);});

axios并发请求

  • 多个请求全部完成后回调。使用all方法,合并多个请求。

//并发请求
axios.all([axios.post("https://api.videolog.net.cn/baidu/wenxin", "hello"),axios.get('https://api.videolog.net.cn/baidu/token')]).then(results => {console.log("4.两个网络请求全部完成后返回:"+results.at(0).data.data)})

axios配置和实例

  • 可以设置全局的baseUrl和超时时间
axios.defaults.baseURL = "https://api.videolog.net.cn";
axios.defaults.timeout = 30000;
  • 也可以不使用全局实例,而是单独根据不同的baseURL创建各自的实例。
import axios from "axios";const axios1 = axios.create({baseURL: "https://api.videolog.net.cn", timeout: 5000})
const axios2 = axios.create({baseURL: "https://api.videolog.net.cn", timeout: 5000})//可以封装接口地址
export class HomeService {static loadNet() {console.log("调用共用组件")axios1({url: 'https://api.videolog.net.cn/baidu/token',params: ''}).then(value => {console.log("1.默认的get请求:", value.data)})}
}//外面可以直接拿到这个实例
export {axios1
}

axios封装和拦截器

import axios from "axios";const axios1 = axios.create({baseURL: "https://api.videolog1.net.cn", timeout: 5000})
const axios2 = axios.create({baseURL: "https://api.videolog.net.cn", timeout: 5000})//请求拦截器
axios1.interceptors.request.use(config => {console.log("请求成功拦截器:",config)//可以在此处设置headerconfig.headers['Content-Type'] = 'application/json;charset=UTF-8'// config.headers['loginToken'] = useUserStore().getTokenreturn config;
}, error => {console.log("请求失败拦截器:",error)
});//响应拦截器
axios1.interceptors.response.use(result => {console.log("响应成功拦截器:",result)return result;
}, error => {console.log("响应失败拦截器:",error)return Promise.reject(error)
});//所有首页相关的请求放到这里。也可以单独抽出一个文件
export class HomeService {static loadTest2() {return axios1({url: '/baidu/token',params: ''})}}//外面可以直接拿到这个实例
export {axios1
}
http://www.lryc.cn/news/259150.html

相关文章:

  • 对比SPI、UART、I2C通信的区别与应用
  • CentOS7安装MySQL8.0
  • 【Go<—>Java】gRPC测试注意事项
  • java面试题整合
  • 2023年12月7日:QT实现登陆界面
  • 常用的测试用例大全
  • 《python每天一小段》--12 数据可视化《1》
  • 分类预测 | Matlab实现HPO-GRU【23年新算法】基于猎食者优化算法优化门控循环单元的数据分类预测
  • 【Pytorch】学习记录分享2——Tensor基础,数据类型,及其多种创建方式
  • 实验7:索引和视图定义
  • Source Tree回滚 重置 贮藏操作
  • Android13 不能静态注册的几个广播
  • 吴恩达深度学习L2W1作业1
  • uniapp原生插件之安卓app添加到其他应用打开原生插件
  • scala编码
  • 智慧路灯杆如何实现雪天道路安全监测
  • C语言指针基础题(二)
  • 物奇平台MIC配置与音频通路关系
  • 外包干了3年,技术退步太明显了。。。。。
  • 阶段十-java新特性
  • win10重装系统历程
  • 【知识积累】深度度量学习综述
  • webrtc网之sip转webrtc
  • 【Spring】依赖注入之属性注入详解
  • 6-tornado配置文件的使用(命令行解析、文件设置)
  • k8s ingress service endpoints 解决微信服务器验证问题(内网穿透)
  • postgresql-effective_cache_size参数详解
  • CUDA锁页内存的使用
  • python常见代码用法
  • MTU TCP-MSS(转载)