- ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ๋ ์ปดํฌ๋ํธ์์ ๋ณด์ฌ์ค์ผ ํ๋ ๋ด์ฉ์ด ์ฌ์ฉ์ ์ธํฐ๋์ ์ ๋ฐ๋ผ ๋์ ์ผ๋ก ๋ฐ๋์ด์ผํ ๋ useState๋ฅผ ์ฌ์ฉํ๋ค.
- ๋ฆฌ์กํธ ์ด์ ๋ฒ์ (16.8์ด์ )์์๋ ํด๋น ๊ธฐ๋ฅ์ด ์์๋๋ฐ, 16.8๋ฒ์ ์ดํ๋ถํฐ
Hooks
๋ผ๋ ๊ธฐ๋ฅ์ด ๋์ ๋์ด์ ํจ์ํ ์ปดํฌ๋ํธ์์๋ ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค. useState
ํจ์๋Hooks
์ค ์ผ๋ถ์ด๋ค.
import React from 'react';
function Counter() {
const onIncrease = () => {
console.log('+1')
}
const onDecrease = () => {
console.log('-1');
}
return (
<div>
<h1>0</h1>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
);
}
export default Counter;
- ๋ฆฌ์กํธ์์ ์๋ฆฌ๋จผํธ์ ์ด๋ฒคํธ๋ฅผ ์ค์ ํ๊ธฐ ->
on์ด๋ฒคํธ์ด๋ฆ={์คํํ๊ณ ์ถ์ํจ์}
ํํ๋ก ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค. - ์ฃผ์ํ ์ : ํจ์ํํ๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํ์ง, ํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์คํํ์ง ๋ง ๊ฒ -> ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ ์ ์๊ฒ ์ค์ ํ์ง ๋ง ๊ฒ (์๋ชป๋ ์ :
onClick={onIncrease()}
)- ๋ ๋๋ง๋๋ ์์ ์์ ํจ์๊ฐ ํธ์ถ๋๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ
- ํด๋ฆญํ ๋ ํจ์๋ฅผ ํธ์ถํด์ผํ๋๋ฐ ๋ ๋๋ง ํ ๋ ํธ์ถํด๋ฒ๋ฆฌ๋ฉด ๋ฒํผ์ด ์๋ฏธ๋ ์์ด์ง๊ณ , ์๋์ ๋ค๋ฅด๊ฒ ์๋ํ๊ฒ ๋๋ค.
import React, { useState } from 'react';
function Counter() {
const [number, setNumber] = useState(0);
const onIncrease = () => {
setNumber(number + 1);
}
const onDecrease = () => {
setNumber(number - 1);
}
return (
<div>
<h1>{number}</h1>
<button onClick={onIncrease}>+1</button>
<button onClick={onDecrease}>-1</button>
</div>
);
}
export default Counter;
const [number, setNumber] = useState(0);
๋ก ๋์ ์ธ ์์ ์ ์ฒ๋ฆฌํ ์ ์๊ฒ ํ๋ค.import React, { useState } from 'react';
: ๋ฆฌ์กํธ์์useState
ํจ์๋ฅผ ๋ถ๋ฌ์จ๋ค.useState
ํจ์์ ํ๋ผ๋ฏธํฐ์๋ ๊ธฐ๋ณธ๊ฐ์ ๋ฃ์ด์ค๋ค. -> ๊ธฐ๋ณธ๊ฐ์ 0์ผ๋ก ํ๊ณ ์ถ์ผ๋ฉดuseState(0)
์ผ๋ก ์ค์ ํ๋ค.- ์ด ํจ์๋ฅผ ํธ์ถํด์ฃผ๋ฉด ๋ฐฐ์ด์ด ๋ฐํ๋๋ค -> ์ฌ๊ธฐ์ ์ฒซ๋ฒ์งธ ์์๋
ํ์ฌ ์ํ
, ๋๋ฒ์งธ ์์๋Setter ํจ์
๋ค.