Not exactly sure about the differences, but the fetch API seems simple and straight forward, sufficient for most requests, no?
let url = 'example.com'
fetch (url)
.then (res => res.json ())
.then (doSomethingWithJSON)
.catch (err => console.log (err))
or
let url = 'example.com'
let headers = new Headers ()
let init = {
method: 'GET',
headers: headers,
mode: 'cors',
cache: 'default',
}
fetch (url, init)
.then (res => res.json ())
.then (doSomethingWithJSON)
Looking briefly at Axios and vue-resource, they both seem identical to the fetch API, so most likely no point in bothering with them unless you get a project that already uses them. I imagine they were created before the fetch API was standardized? Just a guess though. When in doubt, I use the simplest and more likely to be available API.
Other thing to consider is that you don't have to worry about using extra bandwidth if you use the Fetch API, as it's already included in browsers. Worst case scenario is you include a polyfill or transpile it with babel.