(window.webpackJsonp=window.webpackJsonp||[]).push([[172],{501:function(t,e,s){"use strict";s.r(e);var a=s(3),r=Object(a.a)({},(function(){var t=this,e=t._self._c;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"需求分析"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#需求分析"}},[t._v("#")]),t._v(" 需求分析")]),t._v(" "),e("p",[t._v("接下来的章节，我们会使用 TypeScript 来重构 axios，重构之前，我们需要简单地做一些需求分析，看一下我们这次重构需要支持哪些 feature。")]),t._v(" "),e("h2",{attrs:{id:"features"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#features"}},[t._v("#")]),t._v(" Features")]),t._v(" "),e("ul",[e("li",[t._v("在浏览器端使用 XMLHttpRequest 对象通讯")]),t._v(" "),e("li",[t._v("支持 Promise API")]),t._v(" "),e("li",[t._v("支持请求和响应的拦截器")]),t._v(" "),e("li",[t._v("支持请求数据和响应数据的转换")]),t._v(" "),e("li",[t._v("支持请求的取消")]),t._v(" "),e("li",[t._v("JSON 数据的自动转换")]),t._v(" "),e("li",[t._v("客户端防止 XSRF")])]),t._v(" "),e("p",[t._v("此外，我们还会支持一些 axios 库支持的一些其它的 feature。这里要注意的，我们这次重构不包括 axios 在 Node 中的实现，因为这部分我们在平时项目中应用的很少，还涉及到很多 Node.js 的知识，如果都讲的话，一是比较占用时间，另一个可能会喧宾夺主了。当然，这部分知识点我会根据同学们学习的反馈，如果大家很感兴趣想学习的话，我就作为课程的补充内容加到后期视频的扩展中，也当做课程的福利送给大家，所以大家务必要支持一下正版课程喔~")]),t._v(" "),e("p",[t._v("那么接下来我们就开始初始化项目吧！")])])}),[],!1,null,null,null);e.default=r.exports}}]);