๊ด€๋ฆฌ ๋ฉ”๋‰ด

Bin's Blog

์˜ค๋Š˜์˜ React ๋ณธ๋ฌธ

React.js

์˜ค๋Š˜์˜ React

hotIce 2023. 7. 14. 10:58
728x90

1๏ธโƒฃ AJAX๋ž€?

๐Ÿ‘‰ Asynchronous JavaScript and XML(๊ณต์œ  ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. )์˜ ์•ฝ์ž๋กœ, ๋ง ๊ทธ๋Œ€๋กœ JavaScript์™€ XML์„ ์ด์šฉํ•œ ๋น„๋™๊ธฐ์  ์ •๋ณด ๊ตํ™˜ ๊ธฐ๋ฒ•์ด๋‹ค. 

๐Ÿ‘‰ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค.

๐Ÿ‘‰ ์„œ๋ฒ„: ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ

- Ex)์œ ํŠœ๋ฒ„ ์„œ๋ฒ„: ๋™์˜์ƒ ์š”์ฒญํ•˜๋ฉด ์ง„์งœ ๋ณด๋‚ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ

- Ex) ์›นํˆฐ ์š”์ฒญํ•˜๋ฉด ์ง„์งœ ๋ณด๋‚ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ

๐Ÿ‘‰ ์„œ๋ฒ„๊ฐœ๋ฐœ์‹œ ์งœ๋Š” ์ฝ”๋“œ

- ๋ˆ„๊ฐ€ comic.naver.com์œผ๋กœ ์š”์ฒญํ•˜๋ฉด ์›นํˆฐ ๋ณด๋‚ด์ฃผ์„ธ์š”

๐Ÿ‘‰ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์ผ์ •ํ•œ ๊ทœ๊ฒฉ์„ ์ž‘์„ฑํ•˜์ž

๐Ÿ‘‰ ๋ฐฉ๋ฒ• (GET/POST)

- ๋ฐ›์œผ๋ฉด get

- ๋ณด๋‚ด๋ฉด post

๐Ÿ‘‰ ์˜ˆ๋ฅผ ๋“ค์–ด ๋„ค์ด๋ฒ„์›นํˆฐ์„œ๋ฒ„ํ•œํ…Œ (comic.naver.com)์œผ๋กœ GET์š”์ฒญ ํ•˜๋ฉด๋œ๋‹ค.

๐Ÿ‘‰ ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ๋ฐœํ–‰ํ•˜๊ณ  ์‹ถ์œผ๋ฉด (blog.naver.com)์œผ๋กœ POST ์š”์ฒญ

๐Ÿ‘‰ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ณณ์ด GET์š”์ฒญ ํ•˜๋Š” ๊ณณ์ด๋‹ค.

๐Ÿ‘‰ ๊ทธ๋Ÿฌ๋‚˜ GET/POST ์š”์ฒญ์‹œ ์ƒˆ๋กœ๊ณ ์นจ์ด ๋œ๋‹ค. ๊ทธ๊ฒŒ ์‹ซ์œผ๋ฉด AJAX๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ๋ฐ์ดํ„ฐ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ๊ฐ€๋Šฅ

 

๋™๊ธฐ์™€ ๋น„๋™๊ธฐ

 

2๏ธโƒฃ Ajax ์˜ต์…˜ 

๐Ÿ‘‰ XMLHttpRequest, fetch(), Axios๊ฐ€ ์žˆ๋Š”๋ฐ ์ด ์ค‘์—์„œ Axios๋ฅผ ๊ฐ€์žฅ ๋งŽ์ด ์“ด๋‹ค. 

2๏ธโƒฃ - 1๏ธโƒฃ Axios ์‚ฌ์šฉ๋ฒ•

๐Ÿ‘‰ npm install axios

๐Ÿ‘‰ import axios from "axios"

๐Ÿ‘‰ ajax ์ด์šฉํ•œ Get์š”์ฒญ์˜ ํ˜•์‹์€ axios.get("url").then((result) => { result.๊ฐ€์ ธ์˜ฌ๊ฒƒ })

๐Ÿ‘‰ ๋ฆฌ์•กํŠธ์—์„œ๋Š” ๊ฑฐ์˜ ์„œ๋ฒ„์™€ ajax ์ด์šฉํ•ด์„œ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ‘‰ Ajax ์š”์ฒญ ์‹คํŒจํ•  ๊ฒฝ์šฐ?

- ์ธํ„ฐ๋„ท์ด ์•ˆ๋˜๊ฑฐ๋‚˜, ์„œ๋ฒ„๊ฐ€ ๊บผ์กŒ๊ฑฐ๋‚˜, url ์š”์ฒญ์ด ์ž˜๋ชป๋์„ ๋•Œ๊ฐ€ ๋งŽ๋‹ค.

- ์‹คํŒจํ•  ๊ฒฝ์šฐ ํŠน์ • ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‹ค.

 

๐Ÿ‘‰ ์˜ˆ์‹œ

<button onClick={() => {
  axios.get("https://codingapple1.github.io/shop/data2ใ…‹ใ…‹.json")
  .then((result) => {
     console.log(result.data)
  })
  .catch((error) => {
    console.log("์‹คํŒจํ•จ")
  })
}}>
๋ฒ„ํŠผ
</button>

๐Ÿ‘‰ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „์†กํ•˜๋Š” POST ์š”์ฒญ

axios.post("/www.naver.com", {name : "Lee"})

๐Ÿ‘‰ ๋™์‹œ์— ajax ์š”์ฒญ ์—ฌ๋Ÿฌ๊ฐœํ•˜๋ ค๋ฉด

Promise.all([ axios.get("/url1"), axios.get("/url2")])
.then(() => {
})
728x90

'React.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Flux ํŒจํ„ด  (0) 2023.09.01
[React.js] ์˜ค๋Š˜์˜ ๋””๋ฒ„๊น…  (0) 2023.08.01
์˜ค๋Š˜์˜ React  (0) 2023.05.21
์˜ค๋Š˜์˜ React  (0) 2023.05.14
์˜ค๋Š˜์˜ react  (0) 2023.05.12