TIL(35)React

codedotยท2021๋…„ 8์›” 12์ผ
0

React โœ๐Ÿป

React SPA

  • React Router DOM๋ฅผ ์ด์šฉํ•˜์—ฌ SPA๋ฅผ ๊ตฌํ˜„
  • ๋ผ์šฐํŒ… ๊ตฌ์กฐ๋ฅผ ์งœ๊ณ , ์ด์— ํ•„์š”ํ•œ ๊ธฐ์ดˆ ๋ฌธ๋ฒ•๋“ค์„ ์‚ฌ์šฉ
    • ๋ผ์šฐํŒ… : ๋‹ค๋ฅธ ์ฃผ์†Œ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์„ "๊ฒฝ๋กœ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝํ•œ๋‹ค."๋ผ๋Š” ์˜๋ฏธ
  • React Router์˜ ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.
    • ๋ผ์šฐํ„ฐ ์—ญํ• ์„ ํ•˜๋Š” BrowserRouter
    • ๊ฒฝ๋กœ๋ฅผ ๋งค์นญํ•ด์ฃผ๋Š” Switch Route
    • ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” Link
import{ BrowserRouter,Switch,Route,Link }from "react-router-dom";

์ฒ˜์Œ ๋ฆฌ์•กํŠธ๋ฅผ ์ ‘ํ•  ๋•Œ๋Š” ๋„๋Œ€์ฒด ๋ฌด์Šจ ๋ง์ธ์ง€ ๋ญ˜ ์–ด๋–ป๊ฒŒ ํ•˜๋ผ๋Š” ๊ฑด์ง€ ์ „ํ˜€ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š์•˜๋‹ค. ๋ฆฌ์•กํŠธ๋ฅผ ๋ฐฐ์šฐ๋Š” ๊ทธ ๊ธฐ๊ฐ„์ด ๋„ˆ๋ฌด ์žฌ๋ฏธ๋„ ์—†๊ณ  ํž˜๋“ค๊ธฐ๋งŒ ํ–ˆ๋‹ค. ใ… 
ํ•˜์ง€๋งŒ ์ด์ œ๋Š” ํ•˜๋‚˜ํ•˜๋‚˜ ๋ณด์ด๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ  ์™„์„ฑํ•ด ๊ฐ€๋Š” ์žฌ๋ฏธ๊ฐ€ ์žˆ์—ˆ๋‹ค.
๊ณผ์ œ๋Š” ์ด๋ฏธ ์ผ์ฐ ๋๋‚ด ํŽ˜์–ด์™€ ํ•จ๊ป˜ ์ถ”๊ฐ€์ ์œผ๋กœ ์‚ฌ์ด๋“œ๋ฐ”์— ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค๊ณ  ์•„์ด์œ  ํŠธ์œ„ํ„ฐ ํด๋ก ์ฝ”๋”ฉ๋„ ํ–ˆ๋‹ค.(ํด๋ก ์ฝ”๋”ฉ์€ ์•„์ฃผ ์กฐ๊ธˆ๋งŒ ๊ฑด๋“œ๋ ธ๋‹ค...)
history๋ฅผ ์ด์šฉํ•ด ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์˜ค ์‹ ๊ธฐํ•จ!
๋ฆฌ์•กํŠธ๋Š” css๋„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ฒ˜์Œ์—๋Š” ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ๋ถˆํŽธํ–ˆ๋Š”๋ฐ ์ต์ˆ™ํ•ด์ง€๋‹ˆ ํ•  ๋งŒ ํ–ˆ๋‹ค.
์—ฌ๋Ÿฌ ์ƒˆ๋กœ์šด ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ๋˜์–ด ๊ฝค๋‚˜ ์œ ์ตํ•œ ์‹œ๊ฐ„์ด์˜€๋‹ค.
์ง€๋‚œ๋‚ ์„ ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์ต์ˆ™ํ•˜์ง€ ์•Š๊ณ  ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ์‰ฝ๊ฒŒ ๋‹ค๊ฐ€๊ฐ€์ง€ ๋ชปํ•ด ํž˜๋“ค์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.
๋„ˆ๋ฌด ์–ด๋ ค์›Œ์„œ ๋ชป ํ•˜๊ฒ ์–ด ํ•˜๋ฉฐ ํ”ผํ–ˆ๋˜๊ฒŒ ์•„๋‹๊นŒ? ํ•˜๋Š” ์ƒ๊ฐ์ด ๋ฌธ๋“ ๋“ค์—ˆ๋‹ค.
์ด์ œ๋Š” ์–ด๋ ต๋‹ค๊ณ  ํ”ผํ•˜์ง€ ์•Š๊ณ  ์ผ๋‹จ ํ•ด๋ณด์ž!!

์ดํ›„์— ๋ฐฐ์šฐ๋Š” props, state ๋“ฑ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ๋‚จ์•˜๋Š”๋ฐ ์ด๊ฒƒ๋„ ์ž˜ ํ•™์Šตํ•˜์—ฌ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ฃจ๋„๋ก ํ•ด๋ณด๊ฒ ๋‹ค!! ํŒŒ์ดํŒ…!

profile
Loding...

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด