はじめに
データ型についての理解が乏しく、データのやり取りの際に
毎回調べてやっているのでまとめてる+復習して覚えるのが目的です。
素人のようなことを書いているかと思いますw
アドバイスいただけると幸いです。
さっそく
axiosの場合のデータ取り出し
axios.get('/api/some')
.then(res => {
console.log(res)
})
// 上記のように取得した場合、Promiseは解決され以下のようなデータになっている。
// DataはすでにJson型になっている。
{
data: {...}, // ← サーバーが返した JSON 本体
status: 200,
statusText: "OK",
headers: {...},
config: {...},
request: {...}
}
// res.dataを渡すことで中身が渡せる
Data.value = res.data
fetch 系の場合のデータ取り出し
const res = await fetch('/api/parks') // awaitをつけることでPromiseではなくなる。
// 上記のように取得した場合以下のようなデータになっている。
// Jsonは本体に入っていない。手動でJsonを取り出す必要がある。
{
body: ReadableStream,
headers: Headers,
ok: true,
status: 200,
statusText: "OK",
...
}
// okが使えたりする。取得する際は.jsonで取得する。
if (!res.ok) throw new Error('Network error')
const data = await res.json() // ← ここで JSON 本体を取得
AreaPark.value = data
結論
axios
axiosでデータを取得する場合はPromiseを解決するとAxiosのResponseオブジェクトで返され、
dataはすでにJson型になっている。
fetch
fetchでデータを取得する場合はPromiseを解決するとResponseオブジェクトで返されるが、
JSON 本体はまだ入っていない。
JSONを取り出すにはさらに .json() を呼ぶ必要がある。
データ型って、、、
ようわからんわ、、、。