κ³μν΄μ λ³ννλ λμ μΈ κ°, κ°μ λ°λΌ λ€λ₯Έ νλμ μννκ² ν©λλ€.
Reactμ Stateλ β
- μ»΄ν¬λνΈκ° κ°λ κ³μ κ°μ΄ λ°λλ λμ μΈ λ°μ΄ν°
- μνλ₯Ό λ°κΎΈλ λ±μ κ΄λ¦¬λ μνλ₯Ό κ°μ§ μ»΄ν¬λνΈκ° μ§μ κ΄λ¦¬νκ² λ©λλ€.
β useState()
- μ»΄ν¬λνΈλ μμ μ κ°μ§ μν(state)κ° λ³ννλ©΄, νλ©΄μ λ€μ κ·Έλ € reRender λ₯Ό ν©λλ€.
- μ¦, ν¨μκ° λ€μ νΈμΆ λ©λλ€.
β λ²νΌμ λλ₯Ό λλ§λ€ +- 1μ© λ³ννλ Counter
import React, { useState } from 'react';
const [ count, setCount ] = useState(0);
// const [ μν κ°, μν λ³ν ν¨μ ] = useState(μ΄κΈ° κ°);
// counter.js
import React, { useState } from 'react';
const Counter = () => {
// 0μμ μΆλ°
// 1μ© μ¦κ°νκ³
// 1μ© κ°μνλ νν
console.log("counter νΈμΆ!"); // ν¨μκ° λ€μ νΈμΆλλμ§ νμΈνκΈ° μν΄
const [count, setCount] = useState(0);
const onIncrease = () => {
setCount(count + 1); // 0 + 1
};
const onDecrease = () => {
setCount(count - 1);
};
return (
<div>
<h2>{count}</h2>
<button onClick={onIncrease}>+</button>
<button onClick={onDecrease}>-</button>
</div>
);
};
export default Counter;
useState()
λ©μλλ[]
λ°°μ΄μ λ°ννκ³ , λΉκ΅¬μ‘°ν ν λΉμ ν΅ν΄μ- 0 λ²μ§Έ index = count, 1 λ²μ§Έ index = setCount λΌλ μμλ‘ λ°μμ΅λλ€.
- countλ μν κ° μ΄κΈ° λλ¬Έμ
{}
μ μ¬μ©ν΄ returnμ λ°μ νλ©΄μ νμ λ©λλ€. - setCountλ count λΌλ μνλ₯Ό λ³νμν€λ μν λ³ν ν¨μ λ‘ μ¬μ©μ΄ λ©λλ€.
- useStateλ count λΌλ μνλ₯Ό λ§λλλ° μ΄κΈ° κ° μΌλ‘ μ¬μ©μ΄ λ©λλ€.
β μ 리
State β
- 리μ‘νΈμ μ»΄ν¬λνΈμ λ³κ²½ κ°λ₯ν λ°μ΄ν°
- μ»΄ν¬λνΈλ₯Ό κ°λ°νλ κ°λ°μκ° μ§μ μ μνμ¬ μ¬μ©
- state μ κ°μ΄ λ³κ²½ λ κ²½μ° μ»΄ν¬λνΈκ° μ¬λ λλ§λ¨
- λ λλ§μ΄λ λ°μ΄ν° νλ¦μ μ¬μ©λλ κ°λ§ stateμ ν¬ν¨μμΌμΌ ν¨
β State μ νΉμ§
- μ§μ μ μΈ λ³κ²½μ΄ λΆκ°λ₯ ν¨
- ν΄λμ€ μ»΄ν¬λνΈ ( λ§μ΄ μ¬μ©λμ§ μκ³ μμ )
- μμ±μμμ λͺ¨λ stateλ₯Ό ν λ²μ μ μ
- state λ₯Ό λ³κ²½νκ³ μ ν λμλ κΌ setState() ν¨μλ₯Ό μ¬μ©ν΄μΌ ν¨
- ν¨μ μ»΄ν¬λνΈ ( κ°μ₯ λ§μ΄ μ¬μ© μ€ )
- useState() ν μ μ¬μ©νμ¬ κ°κ°μ stateλ₯Ό μ μ
- κ° stateλ³λ‘ μ£Όμ΄μ§λ setν¨μλ₯Ό μ¬μ©νμ¬ state κ°μ λ³κ²½
β μ°Έκ³
'π Front-End > React.js' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ¬μ©μ μ λ ₯ μ²λ¦¬ (0) | 2022.10.23 |
---|---|
Props (0) | 2022.10.23 |
JSX λ¬Έλ² (0) | 2022.10.23 |
Create-React-App (0) | 2022.10.23 |
React.js (0) | 2022.10.23 |