1๏ธโฃ ์์ ์ด ๊ด๋ฆฌํ๋ state์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋
2๏ธโฃ ์ ๊ณต๋ฐ๋ props์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋
3๏ธโฃ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋๋ฉด ์์ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง
const Bulb = ({light}) => {
return(
<div>{light === "ON" ? (
<h1 style={{backgroundColor:"orange"}}>ON</h1>
) : (
<h1 style={{backgroundColor:"gray"}}>OFF</h1>
)}
</div>
)
};
return (
const [light, setLight] = useState("OFF");
<>
<Bulb />
<button
onClick={() => {
setLight(light === "ON" ? "OFF" : "ON");
}}
>
Click
</button>
</>
);
count์ ์๋ ๋ฒํผ์ Clickํ๋ฉด count ๋ฆฌ๋ ๋๋ง๋๊ณ Bulb ์ปดํฌ๋ํธ๋ ๋ฆฌ๋ ๋๋ง์ด ๋๋ค.
3๏ธโฃ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋๋ฉด ์์ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง
count์ state๊ฐ ๋ถ๋ชจ(App) ์์ ์์ด ๋ฒํผ์ Clickํ๋ฉด App์ด ๋ฆฌ๋ ๋๋ง์ด ๋์ด App์ ์์ ์ปดํฌ๋ํธ์ธ Bulb ์ปดํฌ๋ํธ๋ก ๋ฆฌ๋ ๋๋ง์ด ๋๋ค.
const Bulb = ({light}) => {
return(
<div>{light === "ON" ? (
<h1 style={{backgroundColor:"orange"}}>ON</h1>
) : (
<h1 style={{backgroundColor:"gray"}}>OFF</h1>
)}
</div>
)
};
function App() {
const [count, setCount] = useState(0);
const [light, setLight] = useState("OFF");
return (
<>
<h1>{count}</h1>
<button onClick={() => {
setCount(count + 1);
}}>
Click
</button>
<Bulb light={light}/>
<button
onClick={() => {
setLight(light === "ON" ? "OFF" : "ON");
}}
>
Click
</button>
</>
);
}
export default App;
// ์ ๊ตฌ state
const Bulb = () => {
const [light, setLight] = useState("OFF");
return(
<div>{light === "ON" ? (
<h1 style={{backgroundColor:"orange"}}>ON</h1>
) : (
<h1 style={{backgroundColor:"gray"}}>OFF</h1>
)}
<button
onClick={() => {
setLight(light === "ON" ? "OFF" : "ON");
}}
>
Click
</button>
</div>
)
};
// ์ซ์ ์ธ๋ state
const Counter = () => {
const [count, setCount] = useState(0);
return(
<div>
<h1>{count}</h1>
<button onClick={() => {ใ
setCount(count + 1);
}}>
Click
</button>
</div>
)
};
return (
<>
<Bulb />
<Counter />
</>
);
โ ๊ทผ๋ฐ ์ ์ ํ ์๊ด์๋ ๋ฆฌ๋ ๋๋ง์ด ๋ฐ์ํ๋ฉด ์๋ผ์?
: ๋ฆฌ๋ ๋๋ง์ด ๋ฐ์ํ ๋๋ง๋ค ์ปดํฌ๋ํธ์ ์ํ๋ props๋ฅผ ๋ค์ ๊ณ์ฐํ๋๋ฐ ์ ํ ์๊ด์๋ ๋ฆฌ๋ ๋๋ง์ด ๋ฐ์ํ๋ฉด ๋ถํ์ํ ์ํ ๊ณ์ฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ๋ญ๋นํ๊ฒ ๋๊ณ ์ด๋ก์ธํด ์ฑ๋ฅ์ด ์ ํ๊ฐ ๋ฉ๋๋ค.
import { useState } from "react";
const Bulb = () => {
const [light, setLight] = useState("OFF");
return(
<div>{light === "ON" ? (
<h1 style={{backgroundColor:"orange"}}>ON</h1>
) : (
<h1 style={{backgroundColor:"gray"}}>OFF</h1>
)}
<button
onClick={() => {
setLight(light === "ON" ? "OFF" : "ON");
}}
>
Click
</button>
</div>
)
};
export default Bulb;
import { useState } from "react";
const Counter = () => {
const [count, setCount] = useState(0);
return(
<div>
<h1>{count}</h1>
<button onClick={() => {
setCount(count + 1);
}}>
Click
</button>
</div>
)
};
export default Counter;
: ๋ง๋ ์ปดํฌ๋ํธ ํ์ผ์ App.jsx ์์ ์ ์ธํ์ฌ return ์์ ํ๊ทธ์ฒ๋ผ ์ฌ์ฉ
import "./App.css";
import Bulb from "./components/Bulb";
import Counter from "./components/Counter";
function App() {
return (
<>
<Bulb />
<Counter />
</>
);
}
export default App;