๐Ÿ”† ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ ์ •๋ฆฌ๐Ÿ”†

Kim-yujinยท2023๋…„ 7์›” 25์ผ

React

๋ชฉ๋ก ๋ณด๊ธฐ
7/7
post-thumbnail

React ๊ฐœ๋ฐœ ์ •๋ฆฌ

React๋ฅผ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ๊ณ ๋ฏผํ–ˆ๋˜ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ•ด๋‚˜๊ฐ€๋Š” ๊ฒŒ์‹œ๊ธ€


ํ™”๋ฉด ์ „์ฒด ์˜์—ญ CSS ์ ์šฉ

์ดˆ๊ธฐ์— ์•„๋ž˜์™€ ๊ฐ™์ด div์˜ ํด๋ž˜์Šค App์—์„œ CSS๋ฅผ ์ ์šฉํ–ˆ์„ ๋•Œ, ์ „์ฒด ํ™”๋ฉด์— ์ ์šฉ๋˜์ง€ ์•Š๊ณ  margin์ด body์— ๋“ค์–ด๊ฐ€์ ธ ์žˆ๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ

width: 100vw; height: 100vh; background: red

App.jsx ์ฝ”๋“œ

import './App.css';

function App() {
  return (
    <div className="App">
      
    </div>
  );
}

export default App;

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ–ˆ๋‹ค. body์— margin: 0์„ ์ฃผ๋ฉด ๋œ๋‹ค.
App.css ํด๋”

body {
	margin: 0;
}

useEffect

ํŠน์ • ์‹œ์ ์— ํ•จ์ˆ˜๋‚˜ ์กฐ๊ฑด์ด ์‹คํ–‰๋˜๋„๋ก ํ•˜๊ณ  ์‹ถ์€๋ฐ, useEffect๋ฅผ ์–ด๋–ค ์กฐ๊ฑด์œผ๋กœ ์ค˜์•ผ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์‹œ์ ์— ์‹คํ–‰๋˜๋„๋ก ํ•˜๋Š”์ง€ ํ—ท๊ฐˆ๋ฆผ.

useEffect ( () => {

})

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

useEffect์˜ ์‚ฌ์šฉ ์‹œ์ 
1) return ๋ฌธ์˜ ํƒœ๊ทธ๊ฐ€ ๋ชจ๋‘ ์‹คํ–‰ ์™„๋ฃŒ ๋  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰๋œ๋‹ค.

useEffect ( () => {

})

...
return (
	<div>์•ˆ๋…•</div>
)

2) ์ฒ˜์Œ ๋ Œ๋”๋ง ๋  ๋•Œ ๋ฐ”๋กœ ์‹คํ–‰๋œ๋‹ค.

useEffect ( () => {

}, [])

3) ํŠน์ • ์‹œ์ ์— ๋ Œ๋”๋ง ํ•˜๊ณ  ์‹ถ์„ ๋•Œ, ์‹คํ–‰๋œ๋‹ค.

(1) props.data1์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค
useEffect( ()=> {
	
}, [props.data1]);
(2) props.data1 ๋˜๋Š” props.data2๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค
useEffect ( () => {

}, [props.data1, props.data2]);


์‚ผํ•ญ ์—ฐ์‚ฐ์ž

ํ•œ ์ค„ ์•ˆ์— ์กฐ๊ฑด์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•ด์„œ, ํšจ์œจ์„ฑ ๋†’์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์„ ๋•Œ

// ๋งŒ์•ฝ data๊ฐ€ true ์ผ ๋•Œ, data1์„ data๊ฐ€ false ์ผ ๋•Œ, data2๋ฅผ ์ถœ๋ ฅํ•จ. 
data ? data1 : data2

์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•ด์„œ style์„ ์ฃผ๊ณ  ์‹ถ์„ ๋•Œ

<div style={{backgroundColor: data==1 ? '#ffffff' : '#000000'}}></div>
profile
๐Ÿฐ๋…ธ๋ ฅํ•˜๋ฉฐ ์‚ด์•„๊ฐ€๊ธฐ๐Ÿฐ

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