λμΈ νλ‘ νΈ λΌμ΄λΈλ¬λ¦¬μΈ 리μνΈλ‘ κ°λ°μ νκΈ°μ μμ κ°κΈμ μ΄λ©΄ κΌ μ§μΌμΌν λΆλΆμλ€ μ 리νμμ΅λλ€. μ΅κ΄μ μΌλ‘ μλ λ΄μ©λ€μ λ°λμ μμ§ν©μλ€!
ν¨μν μ»΄ν¬λνΈμ ν μ μ¬μ©
React ν¨μ μ»΄ν¬λνΈμ ν μ ν΄λμ€μ λΉν΄ λ κ°κ²°νκ³ μ½κΈ° μ¬μ΄ μ½λλ₯Ό μμ±νλ―λ‘ λ μμ£Ό μ¬μ©ν΄μΌ ν©λλ€.
μνμ¬μ© νΌνκΈ°
React μ ν리μΌμ΄μ μ λΉλν λ μνλ₯Ό λ§μ΄ μ¬μ©ν μλ‘ μ± μ 체μμ λ λ§μ λ°μ΄ν°λ₯Ό μΆμ ν΄μΌ νλ―λ‘ μνλ₯Ό μ΅λν μ¬μ©νμ§ λ§μμμ€. μν μ¬μ©μ μ΅μννλ ν κ°μ§ λ°©λ²μ νμν λλ§ μ μΈνλ κ²μ λλ€. μλ₯Ό λ€μ΄ APIμμ μ¬μ©μ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ κ²½μ° κ°λ³ μμ±μ μ μ₯νλ λμ μ 체 μ¬μ©μ κ°μ²΄λ₯Ό μνμ μ μ₯ν©λλ€.
//κ°λ³ μμ± μν
const [username, setusername] = useState('')
const [password, setpassword] = useState('')
//μ 체 μ¬μ©μ κ°μ²΄
const [user, setuser] = useState({})
λμΌν ꡬμ±μμμ κ΄λ ¨λ νμΌμ νλμ ν΄λμ μ 리
Navbar κ΅¬μ± μμλ₯Ό μμ±νλ κ²½μ° Navbar κ΅¬μ± μμ μ체, μ€νμΌ μνΈ, κ΅¬μ± μμμ μ¬μ©λ κΈ°ν JavaSript λ° μμ° νμΌμ ν¬ν¨νλ navbarλΌλ ν΄λλ₯Ό μμ±ν©λλ€.
μΈλ±μ€ ν€λ₯Ό Props Keyλ‘ μ¬μ©νμ§ μκΈ°
μλμ κ°μ΄ μΈλ±μ€ ν€λ₯Ό μ¬μ©νλ©΄ λλλ‘ μλνμ§λ§ μΈλ±μ€λ₯Ό ν€λ‘ μ¬μ©νλ©΄ νΉν λͺ©λ‘μ΄ λ³κ²½λ κ²μΌλ‘ μμλλ κ²½μ° λ¬Έμ κ° λ°μν μ μμ΅λλ€.
//μΈλ±μ€ ν€λ₯Ό μ¬μ© (X)
const Items = () => {
const arr = ["item1", "item2", "item3", "item4", "item5"];
return (
<>
{arr.map((elem, index) => {
<li key={index}>{elem}</li>;
})}
</>
);
};
κ°λ₯ν κ²½μ° div λμ μ‘°κ°μ μ ννμμμ€.
const Button = () => {
return <button>Display</button>;
};
λͺ λͺ κ·μΉ μ€μ
κ΅¬μ± μμ μ΄λ¦μ μ§μ ν λ νμ PascalCaseλ₯Ό μ¬μ©νμ¬ κ΅¬μ± μμκ° μλ λ€λ₯Έ JSX νμΌκ³Ό ꡬλ³ν΄μΌ ν©λλ€. (μ: TextField, NavMenu λ° SuccessButton) handleInput() λλ showElement()μ κ°μ React κ΅¬μ± μμ λ΄λΆμ μ μΈλ ν¨μμλ camelCaseλ₯Ό μ¬μ©νμμμ€.
λ°λ³΅μ μΈ μ½λ νΌνκΈ°
μ€λ³΅λ μ½λλ₯Ό μμ±νκ³ μλ€λ κ²μ μκ² λλ©΄ μ¬μ¬μ©ν μ μλ κ΅¬μ± μμλ‘ λ³ννμμμ€.
Propsμ κ°μ²΄ ꡬ쑰ν μ¬μ©
props κ°μ²΄λ₯Ό μ λ¬νλ λμ κ°μ²΄ ꡬ쑰νλ₯Ό μ¬μ©νμ¬ props μ΄λ¦μ μ λ¬νμμμ€. μ΄λ κ² νλ©΄ μ¬μ©ν λλ§λ€ props κ°μ²΄λ₯Ό μ°Έμ‘°ν νμκ° μμ΅λλ€.
//props κ·Έλλ‘ μ¬μ©
const Button = (props) => {
return <button>{props.text}</button>;
};
//κ°μ²΄ ꡬ쑰ν μ¬μ©
const Button = ({text}) => {
return <button>{text}</button>;
};
맡μ μ¬μ©νμ¬ λμ μΌλ‘ λ°°μ΄ λ λλ§
map()μ μ¬μ©νμ¬ λ°λ³΅λλ HTML λΈλ‘μ λμ μΌλ‘ λ λλ§ν©λλ€. μλ₯Ό λ€μ΄ map()μ μ¬μ©νμ¬
const Items = () => {
const arr = ["item1", "item2", "item3", "item4", "item5"];
return (
<>
{arr.map((elem, index) => {
<li key={elem+index}>{elem}</li>;
})}
</>
);
};
κ° React κ΅¬μ± μμμ λν ν μ€νΈ μμ±
μμ±ν κ΅¬μ± μμμ λν ν μ€νΈλ₯Ό μμ±νλ©΄ μ€λ₯ κ°λ₯μ±μ΄ μ€μ΄λλλ€. ν μ€νΈλ₯Ό ν΅ν΄ κ΅¬μ± μμκ° μμλλ‘ μλνλμ§ νμΈν©λλ€. Reactμ κ°μ₯ μΌλ°μ μΈ ν μ€νΈ νλ μμν¬ μ€ νλλ Jestμ΄λ©° ν μ€νΈλ₯Ό μ€νν μ μλ νκ²½μ μ 곡ν©λλ€.
React Is a Powerful Tool, But You Must Follow Certain Practices
Reactλ μ¬μ© λ°©λ² μΈ‘λ©΄μμ λ€μ μ μ°νμ§λ§ νΉμ μ¬λ‘λ₯Ό λ°λ₯΄λ©΄ κ²½νμ μ΅λν νμ©νλ λ° λμμ΄ λ©λλ€.