一般使用api
的方式
-
编写自定义的
axios.js
文件,包括请求发送和响应拦截的一些配置(一般我会配置请求超时时间、发送请求时的token、处理响应时的异常信息) -
引入
axios.js
,定义接口import axios from './axios' export const getBanner = (params) => { return axios({ url: '/circle/newest', method: 'post', data: params }) }
-
在页面中使用
import { getBanner } from '@/apis/banner.js' async search() { await getBanner({id:0}) }
优化后使用api
的方式
-
定义
api
...ex:/apis/banner.js export default { "getBanner|post":"/circle/newest" }
-
使用统一的接口调用方式
import axios from '@/utils/axios.js' let transfer = function(url,args,method) { let param = { url: url, method: method, data:args } return axios(param) } export default function(API) { let apis = {} for (let item in API) { let aKey = item.split("|"); // ['banner/getBanner','post'] let key = aKey[0]; let method = aKey[1] || 'get'; apis[key] = function(args) { return transfer(API[item],args, method); } } return apis }
-
读取
api
并转化为key,value
形式import transfers from './transfer' let apiComponents = require.context('@/apis', true, /\.js$/) // 读取各api所在文件夹 let apis = {} //遍历所有文件 apiComponents.keys().forEach(key => { let name = key.split('/').pop().replace('.js', '') // 获取文件名 let componentEntity = apiComponents(key).default; for (let p in componentEntity) { apis[`${name}/${p}`] = componentEntity[p] // 将apis里面的接口转化成 {banner/getBanner|get : '/getList'} } }) export default transfers(apis)
-
页面中使用
async search() { await this.$apis['banner/getBanner']({id:0}) }
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!