๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Front-end/React

React ์ข‹์•„์š” ๋ฒ„ํŠผ ๋งŒ๋“ค๋ฉด์„œ state ๊ณต๋ถ€

by ciocio 2021. 8. 25.

๐Ÿ“Œ  ๊ตฌํ˜„ ๊ฒฐ๊ณผ

 

 

๐Ÿ“Œ  ๊ตฌํ˜„ ๊ณผ์ •

 

App.js

 


โœ” /* eslint-disable */  

npm ๋ˆŒ๋ €์„ ๋•Œ ๋œจ๋Š” ๋…ธ๋ž€ ๊ธ€์”จ ( ์˜ค๋ฅ˜๋Š” ์•„๋‹ˆ์ง€๋งŒ ์•ฝํ•œ ๊ฒฝ๊ณ  ๋ฉ”์„ธ์ง€ ) ๋ฅผ ์ง€์›Œ์ฃผ๋Š” ์—ญํ• 

 

โœ” ๋ฆฌ์•กํŠธ๋Š” ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด ๊ต‰์žฅํžˆ ์‰ฝ๋‹ค

 

๋ฐ์ดํ„ฐ์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ, useState๋ฅผ ์‚ฌ์šฉํ•ด ๋ณต์‚ฌํ•ด ์˜จ ๋‹ค์Œ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉ์‹œํ‚จ๋‹ค.

์ ˆ๋Œ€ !! ์›๋ณธ ๋ฐ์ดํ„ฐ๋Š” ์ง์ ‘ ๋ณ€๊ฒฝ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค. ๊ผญ ๋ณต์‚ฌํ•ด์„œ ๋“ค๊ณ  ์˜ฌ ๊ฒƒ.

 

// 01
const changeName = () => articleNameChange(["๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ์ž" ,"์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ", "๋ฆฌ์•กํŠธ"])

// 02
const changeName = () => {           
  const newArr = [...articleName];
  newArr[0] = "๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ์ž";
  articleNameChange(newArr);
}

 

โœ” ๊ฐ’์„ '๊ณต์œ 'ํ•˜์ง€ ๋ง๊ณ  '๊นŠ์€ ๋ณต์‚ฌ'๋ฅผ ํ•ด์„œ ๊ฐ€์ ธ์˜ค์ž

 

๋‘˜ ๋‹ค ๋˜‘๊ฐ™์ด state๋ฅผ ๋ณ€ํ™”์‹œ์ผฐ์ง€๋งŒ ๊ทธ ๊ณผ์ • ์†์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ์‹์˜ ์ฐจ์ด๊ฐ€ ์žˆ์—ˆ๋‹ค. 

๋˜๋„๋ก์ด๋ฉด 02๋ฒˆ ๋ฐฉ์‹์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•ด์„œ ์ˆ˜์ •ํ•˜๋Š” ํ˜•์‹์„ ๋”ฐ๋ฅด์ž.

 

 

โœ” state๋ฅผ ์ž˜ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒŒ ๊ด€๊ฑด์ด๋‹ค

 

์ด ์กฐ๊ทธ๋งŒ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ๋„ state๊ฐ€ 3๊ฐœ๋‚˜ ์กด์žฌํ•œ๋‹ค. ์ œ๋ชฉ state, ๋‚ ์งœ state, ์ข‹์•„์š” ์ˆซ์ž state.

๊ทธ๋ฆฌ๊ณ  ์ด state๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋“ค๋„ 3๊ฐœ ์ด์ƒ ์กด์žฌํ•  ๊ฒƒ์ด๋‹ค. ์ œ๋ชฉ ๋ณ€๊ฒฝ ํ•จ์ˆ˜, ๋‚ ์งœ ๋ณ€๊ฒฝ ํ•จ์ˆ˜, ์ข‹์•„์š” ์ˆซ์ž ๋ณ€๊ฒฝ ํ•จ์ˆ˜ ๋“ฑ๋“ฑ

์ง€๊ธˆ์œผ๋กœ์„œ๋Š” ์ข‹์•„์š” ์ˆซ์ž ๋ณ€๊ฒฝ ํ•จ์ˆ˜๊ฐ€ ์žฌํ™œ์šฉ์„ฑ์ด ๋†’์•„๋ณด์ธ๋‹ค. ์–ด๋Š ๋ฒ„ํŠผ์— ๋“ค์–ด๊ฐ€์„œ๋„ ๋˜‘๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ œ๋ชฉ์ด๋‚˜ ๋‚ ์งœ ๋ณ€๊ฒฝ์€ useState ์—ฐ์Šตํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ž :)

 

 

โœ” { BrowserRouter, Switch, Route, Link }

 

๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์•„์ด๋“ค์ด๋‹ค.

์ปดํฌ๋„ŒํŠธ ๋ณ„๋กœ path๋ฅผ ์„ค์ •ํ•˜๊ณ , ์ง€์ •๋œ ๋ฒ„ํŠผ๊ณผ Link๋ฅผ ์—ฐ๊ฒฐํ•ด ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ํ•ด๋‹น path๋กœ ์ด๋™์‹œ์ผœ์ฃผ๋Š” ์•„์ด๋‹ค.

์ผ๋‹จ ์‚ฌ์šฉ๋ฒ•์€ ๋‚˜์ค‘์— !!

 

 

App.css

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€