首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
说说你对vue的理解?
说说你对双向绑定的理解?
说说你对SPA(单页应用)的理解?
Vue中的v-show和v-if怎么理解?
Vue实例挂载的过程中发生了什么?
说说你对Vue生命周期的理解?
为什么Vue中的v-if和v-for不建议一起用?
SPA(单页应用)首屏加载速度慢怎么解决?
为什么data属性是一个函数而不是一个对象?
Vue中给对象添加新属性界面不刷新怎么解决?
Vue中组件和插件有什么区别?
Vue组件间通信方式都有哪些?
说说你对nexttick的理解?
说说你对vue的mixin的理解,有什么应用场景?
说说你对slot的理解?slot使用场景有哪些?
Vue.observable你有了解过吗?使用场景是?
你知道vue中key的原理吗?说说你对它的理解?
怎么缓存当前的组件?缓存后怎么更新?keep-alive的原理?
Vue常用的修饰符有哪些?有什么应用场景?
你有写过自定义指令吗?自定义指令的应用场景有哪些?
Vue中的过滤器了解吗?过滤器的应用场景有哪些?
什么是虚拟DOM?如何实现一个虚拟DOM?
了解过vue中的diff算法吗?diff算法的原理
Vue项目中有封装过axios吗?怎么封装的?
你了解Axios的原理吗?它的源码有哪些重要部分?
SSR解决了什么问题?有做过SSR吗?你是怎么做的?
说下你的Vue项目的目录结构,大型项目如何划分结构和组件?
Vue要做权限管理该怎么做?控制到按钮级别的权限怎么做?
跨域是什么?Vue项目中你是如何解决跨域的呢?
Vue项目如何部署?布署服务器后刷新404问题怎么解决?
你是怎么处理vue项目中的错误的?
Vue3有了解过吗?能说说跟Vue2的区别吗?
Vue3.0的设计目标是什么?做了哪些优化?
Vue3.0 性能提升主要是通过哪几方面体现的?
Vue3.0里为什么要用 Proxy API 替代 defineProperty API ?
Vue3.0Composition Api与Vue2.xOptions Api 有什么不同?
说说Vue 3.0中Treeshaking特性?
用Vue3.0 写过组件吗?如果想实现一个 Modal你会怎么设计?
当前位置:
首页>>
技术小册>>
Vue面试指南
小册名称:Vue面试指南
Axios 是一个基于 Promise 的 HTTP 库,可以用于浏览器和 node.js 环境中。它提供了一个易于使用的 API,可以处理请求和响应,并提供了拦截器、取消请求、自动转换 JSON 数据等功能。Axios 的源码比较庞大,可以从以下几个方面进行分析: 创建 Axios 实例:Axios 构造函数返回一个 Axios 实例,这个实例具有默认配置和拦截器等属性,可以通过 Axios.create 方法创建多个实例。Axios 实例有多个方法,例如:request、get、post、put、delete 等。 ``` // 创建一个 Axios 实例 const instance = axios.create({ baseURL: 'https://api.example.com', timeout: 5000, headers: { 'Content-Type': 'application/json' } }); ``` 处理请求和响应:Axios 的核心功能是发送 HTTP 请求和处理响应。Axios 发送请求时,会将请求参数和配置合并成一个请求配置对象,然后使用 XMLHttpRequest 或者 XDomainRequest 发送请求。Axios 接收响应后,会根据响应状态码判断请求是否成功,然后调用拦截器处理响应数据。 ``` // 发送 GET 请求 instance.get('/users', { params: { id: 1 } }).then(res => { console.log(res.data); }).catch(error => { console.log(error); }); ``` 实现拦截器:Axios 支持请求拦截器和响应拦截器,可以在请求和响应的各个阶段进行一些自定义操作。拦截器是一个数组,每个元素包含两个回调函数,分别是成功回调和失败回调。 ``` // 添加请求拦截器 instance.interceptors.request.use(config => { // 在发送请求之前做些什么 config.headers.Authorization = 'Bearer ' + localStorage.getItem('token'); return config; }, error => { // 处理请求错误 return Promise.reject(error); }); // 添加响应拦截器 instance.interceptors.response.use(response => { // 处理响应数据 return response; }, error => { // 处理响应错误 return Promise.reject(error); }); ``` 处理取消请求:Axios 支持取消请求,可以在请求发送前或者请求过程中取消请求。取消请求的实现原理是使用一个 cancelToken 标识请求,然后在需要取消请求的地方调用 cancel 方法。 ``` // 创建一个取消请求的 token const source = axios.CancelToken.source(); // 发送请求 instance.get('/users', { cancelToken: source.token }).then(res => { console.log(res.data); }).catch(error => { console.log(error); }); // 取消请求 source.cancel('取消请求'); ```
上一篇:
Vue项目中有封装过axios吗?怎么封装的?
下一篇:
SSR解决了什么问题?有做过SSR吗?你是怎么做的?
该分类下的相关小册推荐:
TypeScript和Vue从入门到精通(三)
Vue3技术解密
Vue.js从入门到精通(一)
TypeScript和Vue从入门到精通(一)
移动端开发指南
vue项目构建基础入门与实战
Vue原理与源码解析
TypeScript和Vue从入门到精通(四)
TypeScript和Vue从入门到精通(五)
Vue.js从入门到精通(二)
vuejs组件实例与底层原理精讲
Vue.js从入门到精通(四)