์๋ฐ์คํฌ๋ฆฝํธ์์ API๋ฅผ ์ฐ๋ํ๊ธฐ ์ํด์๋ ๋ณดํต fetch API ๋ฅผ ์ฌ์ฉํ๋ค. ๋ฆฌ์กํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋์ด๊ธฐ๋๋ฌธ์ fetch๋ฅผ ์ฌ์ฉํด์ API ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ ํต์ ์ ํ ์ ์๋ค.
ํ์ง๋ง ๋ง์ ์ฌ๋๋ค์ด ๋ฆฌ์กํธ๋ฅผ ์ธ ๋ Axios๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ๋ ๊ฒ ๊ฐ๋ค.
API๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ธฐ ์ํด์ axios๋ฅผ ์จ๋ณด์!
#Axios ๋ค์ด๋ฐ๊ธฐ
1๏ธโฃ cmd ํน์ ์ฝ๋์๋ํฐ ํฐ๋ฏธ๋์ ์ด์ํด์ axios๋ฅผ ๋ค์ด๋ฐ์ต๋๋ค
npm i axios
์ค์น๊ฐ ์ ๋์๋์ง ํ์ธํ๊ณ ์ถ๋ค๋ฉด Package.json ์ ํด๋ฆญํด๋ณด์๋ฉด ํ์ธํ์ค ์ ์์ด์. ์์ axios๊ฐ ์๋ค๋ฉด ์ค์น์๋ฃ!
2๏ธโฃ์ฝ๋๋ฅผ ์ฐ๊ณ ์๋ ํ์ผ์ import ํด์ฃผ๊ธฐ
axios๋ฅผ ์ธ ๊ณณ์ ๊ผญ import๋ฅผ ํด์ค์ผ ์ธ ์ ์๋ต๋๋ค
3๏ธโฃaxios๋ฅผ ์ฐ๋๋ฐ, method๋ ์ด 4๊ฐ๊ฐ ์์ต๋๋ค ‘GET’, ‘POST’, ‘DELETE’, ‘PUT’
‘GET’
๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ url์์ ์ ๋ณด๋ฅผ ๋ฐ์๋ธ๋ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฐ์์จ ์ ๋ณด๋ฅผ ๋ฐ๊พธ์ง๋ ๋ชปํฉ๋๋ค
์ ๊ฐ ์ด ์ฝ๋๋ useState์ useEffect๋ฅผ ์จ์ผํด์ axios๋ฅผ ๊ฐ์ธ๊ณ ์๋ ์ํฉ์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ json ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๊ณ ํด์ผํ์ง๋ง json ํํ๋ก ๋ฐ๋ก ์๋ตํฉ๋๋ค
‘POST’
url์ ์๋ก์ด ๋ฆฌ์์ค๋ฅผ ์์ฑํ ๋ ์ด์ฉํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด ๋ก๊ทธ์ธ์ด๋ผ๋๊ฐ ํ์๊ฐ์ ์ด๋ผ๋๊ฐ
‘DELETE’
REST ๊ธฐ๋ฐ API ํ๋ก๊ทธ๋จ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด ์๋ ๋ด์ฉ์ ์ญ์ ํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
์ ๋ ์์ง ํ๋ฒ๋ ์ฌ์ฉํด ๋ณธ ์ ์ด ์์ด์. ์ฃผ๋ก post,get ๋ง ์ฌ์ฉํด์…
‘PUT’
REST ๊ธฐ๋ฐ API ํ๋ก๊ทธ๋จ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด ์๋ ๋ด์ฉ์ ๊ฐฑ์ /๋ณ๊ฒฝํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
axios.put(‘url’, [data])
์ด๋ฐ์์ผ๋ก ์ฌ์ฉํ๋๋ฐ, ‘DELETE’์ ‘PUT’์ url๋ฅผ ์ ์ฒด์ ์ผ๋ก ๋ฃ๋ ๊ฒ์ด ์๋๋ผ ์ ์ด ‘POST’,’GET’๊ฐ ๋ค๋ฅธ์ ์ด๋๋๋ค
์ฐธ์กฐ
๐๐ป https://www.npmjs.com/package/react-axios
'๊ฐ๋ฐ > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React vs Vue.js ์ฐจ์ด์ (0) | 2022.03.02 |
---|---|
[React] ๋ฆฌ์กํธ ํ๋ก์ ํธ Netlify๋ก ๋ฐฐํฌํ๊ธฐ (0) | 2022.02.21 |
[React.Js] UseState ์ฌ์ฉ / ๊ฐ๋จํ ๋ฆฌ์คํธ ๋ง๋ค๊ณ ์ง์ฐ๊ธฐ (0) | 2022.02.18 |
[React.Js] ๋ฆฌ์กํธ Router ์ฌ์ฉํ๊ธฐ (0) | 2022.02.18 |
[React.Js] ๋ฆฌ์กํธ ์์ํ๊ธฐ, Create-React-App (0) | 2022.02.17 |