
import "./App.css";
import Hello from "./component/Hello";
function App() {
return (
<div className="App">
<Hello age={10} />
<Hello age={20} />
<Hello age={30} />
</div>
);
}
export default App;
import { useState } from "react";
export default function Hello(props) {
const [name, setName] = useState("Mike");
return (
<div>
<h1>state</h1>
<h2>
{name}({props.age}์ธ)
</h2>
<button
onClick={() => {
setName(name === "Mike" ? "Jane" : "Mike");
}}
>
Change
</button>
</div>
);
}
๋๋
import { useState } from "react";
export default function Hello({age}) { //props๋ age๋ง ์์
const [name, setName] = useState("Mike");
const msg = msg > 19 ? "์ฑ์ธ ์
๋๋ค" : "๋ฏธ์ฑ๋
์ ์
๋๋ค";
return (
<div>
<h1>state</h1>
<h2>
{name}({age}) : {msg}
</h2>
<button
onClick={() => {
setName(name === "Mike" ? "Jane" : "Mike");
}}
>
Change
</button>
</div>
);
}

age ๊ฐ์ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ฉด component๋ด๋ถ์์ state๋ฅผ ๋ค์ ๋ง๋ค์ด์ผ ํจ!
๋๊ฒจ ๋ฐ์ ๊ฐ์ด๋ฏ๋ก...
import { useState } from "react";
export default function Hello(props) {
const [name, setName] = useState("Mike");
const [age, setAge] = useState(props.age);
return (
<div>
<h1>state</h1>
<h2>
{name}({age}์ธ)
</h2>
<button
onClick={() => {
setName(name === "Mike" ? "Jane" : "Mike");
setAge(age + 1); //๋ฒํผ ๋๋ฅผ ๋๋ง๋ค age๊ฐ 1์ฉ ์ฆ๊ฐ
}}
>
Change
</button>
</div>
);
}
ํ๋ฉด์ ์ด๋ค data ๊ฐฑ์ ์ props, state๋ก ์ฒ๋ฆฌ!
export default function UserName({ name }) {
return <p>{name}</p>;
}
import { useState } from "react";
import UserName from "./UserName";
export default function Hello({age}) {
const [name, setName] = useState("Mike");
return (
<div>
<h1>state</h1>
<h2>
{name}({age}์ธ)
</h2>
<UserName name={name}/>
<button
onClick={() => {
setName(name === "Mike" ? "Jane" : "Mike");
}}
>
Change
</button>
</div>
);
}
Hello ์ปดํฌ๋ํธ ๋ด์์๋ name์ state
UserName ์ปดํฌ๋ํธ ๋ด์์๋ props
์ด๋ ๋์์ ๋ณ๊ฒฝ๋จ.