0.0.2 • Published 5 years ago

zhlt-axios v0.0.2

Weekly downloads
3
License
MIT
Repository
-
Last release
5 years ago

zhlt-axios

一个基于axios和业务的ajax请求封装,不限项目使用的框架,只需全局安装即可使用。

使用

  npm i zhlt-axios -g

or

  yarn global add zhlt-axios

then

  zhlt-axios

选项

-o, --output: 最终的文件的输出路径。默认是当前路径,如果指定的路径下有名为ajax的目录,则不会覆盖。

输出的目录结构

└── ajax
   ├── index.js
   └── interceptors
       ├── index.js
       ├── request
       │   └── index.js
       └── response
           └── index.js
  • ajax/index.js对外导出一个被初始化的axios对象,文件中有一些初始的配置,生成目录之后使用者可以任意更改
  • interceptors目录下是axios的拦截器,包括请求拦截和响应拦截,具体参考链接。
  • interceptors/requestinterceptors/response目录下各有一个index.js文件,使用者在添加了拦截器之后,应该也在对应的index.js内引入,因为在ajax/interceptors/index.js中会对所有的拦截器做处理。根据(培伟大佬翻查)源码会发现,request拦截器越添加的越执行,response拦截器越添加的越执行,因此在interceptors/requestinterceptors/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
        }
      }

    即,对外导出的是一个对象,包括两个字段onFulfilledonRejected。两者均是函数,且前者接受一个config参数,内容为请求的配置;后者接受一个reject参数,内容为请求的拒绝信息。在响应拦截中应使用同样的格式对外导出对象。

欢迎各位小伙伴一起贡献代码

0.0.2

5 years ago

0.0.1

5 years ago