์ด ๊ธ์ fetch์ ๋ํด์ ๋ค๋ฃจ์์ต๋๋ค.
โ ๏ธ ์ ๋ฆฌํ ๋ด์ฉ์ ์คํ๋ ์๋ชป๋ ์ ๋ณด๊ฐ ์์ ์ ์์ต๋๋ค. ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค
Fetch API๋ฅผ ์ด์ฉํ๋ฉด Request๋ Response์ ๊ฐ์ HTTP์ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ๋ ์์๋ฅผ ์กฐ์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
๋น๋๊ธฐ HTTP ์์ฒญ์ ์ข ๋ ์ฐ๊ธฐ ํธํ๊ฒ ํด์ฃผ๋ API์ด๋ฉฐ Promise
๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค.
์ฌ์ฉํ๊ธฐ
fetch('http://example.com/movies.json')
.then(function(response) {
return response.json();
})
.then(function(myJson) {
console.log(JSON.stringify(myJson));
});
response.json()
์ฒ๋ผ Response ๊ฐ์ฒด๋ฅผ ์ป์ ๋ค์ ์๋ต์ json์ผ๋ก ๋ฐ๊พธ๊ฑฐ๋ text๋ก ๋ฐ๊พธ๋ ๋ฑ์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ์ด์ผ ํ๋ค.
fetch
๋ก๋ถํฐ ๋ฐํํ๋ ํ๋ก๋ฏธ์ค ๊ฐ์ฒด๋ HTTP error ์ํ๋ฅผ rejectํ์ง ์๋๋ค.
- ๋ฐ๋ผ์ response์ status code๋ ok๋ฅผ ์ฒดํฌํด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
const headers = new Headers()
headers.append('x-auth-token', 'TOKEN');
fetch('http://example.com/movies.json',{
method: 'POST',
headers,
body: JSON.stringify(movie)
})
fetch api๋ฅผ ์ด์ฉํด์ ์ฅ๋ฐ๊ตฌ๋๋ฅผ ๋ง๋ค์ด๋ณด์๋ค. ๊ตฌ์กฐ๋ฅผ ์ปดํฌ๋ํธ ๋จ์๋ก ๋๋๊ณ ๋๋ฏธ๋ฐ์ดํฐ๋ก ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฅผ ์ค์ ํด๋์ผ๋ฉด์ ๊ตฌ์ฑํด ๋์๊ฐ๋ค.๐๐ป
์ด๋ฒ์๋ ์ญ์ state, setState, render๋ฑ์ ํจ์๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ์๊ณ ๊ณ์ ๊พธ์คํ ๋์ ์ตํ๊ณ ์์ผ๋ก ์์ฑํ๋ค ๋ณด๋ ์ต์ํด์ง ๋๋์ด๋ค.(๊ณผ์ ๋ฅผ ์์ํ๋ฉด ๋ค๋ฅด๊ฒ ์ง๋ง..)
DOM์ ์ ํ, ํ์, ์กฐ์ํ๋ ๋ฐฉ๋ฒ๋ ๋ชฐ๋๊ธฐ ๋๋ฌธ์ ํ๋ฃจํ๋ฃจ ์ด์ฌํ ์ด๊ณ ์์ต๋๋ค..
๋ฅ ๋ค์ด๋ธ ๋์ ์คํฐ๋ ๊ท์น์ ๋ค์ ์ฌ์ ๋ฆฝํ์๊ณ 12์ฅ ํจ์, 13์ฅ ์ค์ฝํ, 14์ฅ ์ ์ญ ๋ณ์์ ๋ํด์ ํ ๋ก , ์ ๋ฆฌ ๋ฑ์ ํ์๊ณ ํ์คํ ์คํฐ๋๋ฅผ ํ๋๊น ์ฝ์๋ ๊ฐ๋
๋ค์ด ๋ค์ ๋จธ๋ฆฌ์์์ ์ ๋ฆฌ๋๋ ๋๋์ด๋ผ ์ข์๋ค.๐ค
์คํฐ๋๋ฅผ ํ๋ฒ ํ๋ค๊ณ ๊ทธ ๊ฐ๋
์ด ๋ด ๊ฒ์ด ๋๊ฑด ์๋๋ผ๊ณ ์๊ฐํ๋ค. ์ฌ๋ฌ๋ฒ ๋ค์ ๋ฐ๋ณตํ๋ฉด์ ์ฒดํํ ์ ์๋๋ก ํด์ผ๊ฒ ๋ค.
๊ณผ์ ์ธ์ ํ์ฃ ..?๐ญ