mfetch will provide you with a strong ability to request resource management, at the same time, you can use it very simply
You can install with npm.
npm install mfetch
The mfetch not only supports any request method, but also supports jsonp request, and it also supports request/response global interceptor.
import {fetch} from 'mfetch'
fetch('http://xxxx',{
params:{
arg:'This is arg'
}
}) .then(res=>res.json())
.then(res=>console.log(res))
or
fetch({
url:'http://xxxx',
params:{
arg:'This is arg'
}
}).then(res=>res.json())
.then(res=>console.log(res))
import {fetch} from 'mfetch'
const complex_params = {
param1:'param1',
param2:'param2'
}
fetch({
url:'http://xxxx',
params:{
arg:'This is arg',
obj:JSON.stringify(complex_params)
}
}).then(res=>res.json())
.then(res=>console.log(res))
import {fetch} from 'mfetch'
fetch({
url:'http://xxxx',
method:'jsonp',
params:{
arg:'This is arg'
}
}).then(res=>res.json())
.then(res=>console.log(res))
import {fetch} from 'mfetch'
fetch({
url:'http://xxxx',
method:'jsonp',
params:{
arg:'This is arg'
},
credentials:'include'
}).then(res=>res.json())
.then(res=>console.log(res))
import {fetch} from 'mfetch'
fetch({
url:'http://xxxx',
method:'jsonp',
params:{
arg:'This is arg'
},
credentials:'same-origin'
}).then(res=>res.json())
.then(res=>console.log(res))
import {fetch} from 'mfetch'
fetch({
url:'http://xxxx',
method:'post',
headers:{
'Content-Type':'multipart/formdata;charset=utf8'
},
params:{
arg:'This is arg'
}
}).then(res=>res.json())
.then(res=>console.log(res))
import {fetch,interceptor} from 'mfetch'
interceptor({
request(options){
options.url += '&aaa=bbb'
return options // You can solve the asynchronous problem by returning the Promise object.
},
response(response){
return response.json()
}
})
fetch({
url:'http://xxxx',
params:{
arg:'This is arg'
}
}).then(res=>console.log(res))
import {resource} from 'mfetch'
const getSiteInfo = resource('http://xxxxx',{/** options **/})
const getUserInfo = resource({
url:'http://xxxx',
method:'jsonp'
})
const getCombineInfo = resource((data)=>{
return getSiteInfo(data)
.then(res=>res.json())
.then(res=>getUserInfo(res.data))
})
getCombineInfo({
params:'params'
}).then(res=>res.json())
.then((res)=>{
console.log(res)
})
Use URI Template(RFC6570)
import {resource} from 'mfetch'
const getSiteInfo = resource('/{id}?xxx',{uriTemplate:true})
getSiteInfo({
id:12333
})
.then(res=>res.json())
.then(()=>{
})
fetch(url : String,[options : Object]) : Promise
fetch(options : Object) : Promise
resource(url : String,[options : Object]) : Promise
resource(options : Object) :Promise
resource(callback : Function) :Promise
interceptor(Interceptors : Object)
extension([plugins,...])
MIT