0.0.2 • Published 7 years ago
zhlt-axios v0.0.2
zhlt-axios
一个基于axios和业务的ajax请求封装,不限项目使用的框架,只需全局安装即可使用。
使用
npm i zhlt-axios -gor
yarn global add zhlt-axiosthen
zhlt-axios选项
-o, --output: 最终的文件的输出路径。默认是当前路径,如果指定的路径下有名为ajax的目录,则不会覆盖。
输出的目录结构
└── ajax
├── index.js
└── interceptors
├── index.js
├── request
│ └── index.js
└── response
└── index.jsajax/index.js对外导出一个被初始化的axios对象,文件中有一些初始的配置,生成目录之后使用者可以任意更改interceptors目录下是axios的拦截器,包括请求拦截和响应拦截,具体参考链接。- 在
interceptors/request或interceptors/response目录下各有一个index.js文件,使用者在添加了拦截器之后,应该也在对应的index.js内引入,因为在ajax/interceptors/index.js中会对所有的拦截器做处理。根据(培伟大佬翻查)源码会发现,request拦截器越先添加的越晚执行,response拦截器越先添加的越先执行,因此在interceptors/request或interceptors/response下的index.js中添加拦截器时应需注意执行的时机。 本插件的使用者在添加拦截器时,应遵循如下格式,例如,添加一个请求拦截:
import store from './../../../store' export default { onFulfilled: config => { config.data.deviceType = 3 // 处理某些不是在当前项目下的接口 if (!config.url.match(/^\/letou/)) { config.url = `/letou/bi${config.url}` } config.headers['sessionKey'] = store.getters['getSessionKey'] return config }, onRejected: reject => { return reject } }即,对外导出的是一个对象,包括两个字段
onFulfilled和onRejected。两者均是函数,且前者接受一个config参数,内容为请求的配置;后者接受一个reject参数,内容为请求的拒绝信息。在响应拦截中应使用同样的格式对外导出对象。