Hook
1. Class Component์ Function Component
Hook์ ํจ์ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ๋ ๋ฉ์๋
ํจ์ ์ปดํฌ๋ํธ ์ด์ ์๋ ํด๋์ค(class) ์ปดํฌ๋ํธ๊ฐ ์์์. ํด๋์ค ์ปดํฌ๋ํธ๋ ๋ณต์กํด์ง์๋ก ์ดํดํ๊ธฐ ์ด๋ ค์์ก๊ณ , ์ปดํฌ๋ํธ ์ฌ์ด์์ ์ํ ๋ก์ง์ ์ฌ์ฌ์ฉํ๊ธฐ ์ด๋ ต๋ค๋ ๋จ์ ์ด ์์์.
๋ํ React์ ํด๋์ค ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ JavaScript์ this ํค์๋๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ๋์ํ๋์ง ์์์ผ ํ๋๋ฐ, ์ด๋ ๋ฌธ๋ฒ์ ์ ํํ ์์ง ๋ชปํ๋ฉด ๋์ ๋ฐฉ์ ์์ฒด๋ฅผ ์ ํํ ์ดํดํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค์์.
Class Component
class Counter extends Component {
constructor(props) {
super(props);
this.state = {
counter: 0
}
this.handleIncrease = this.handleIncrease.bind(this);
}
handleIncrease = () => {
this.setState({
counter: this.state.counter + 1
})
}
render(){
return (
<div>
<p>You clicked {this.state.counter} times</p>
<button onClick={this.handleIncrease}>
Click me
</button>
</div>
)
}
}
Function Component
ํจ์ํ ์ปดํฌ๋ํธ๋ ํด๋์คํ ์ปดํฌ๋ํธ์ ๋นํด ํจ์ฌ ๋ ์ง๊ด์ ์ด๊ณ , ๋ณด๊ธฐ ์ฝ๋ค๋ ํน์ง์ด ์์
์ด Counter ์ปดํฌ๋ํธ์์ ์ํ๊ฐ์ ์ ์ฅํ๊ณ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ useState()๋ผ๋ ๋ฉ์๋ โ Hook.
์ฆ, Counter ์ปดํฌ๋ํธ์์ useState() Hook์ ํธ์ถํด ํจ์ ์ปดํฌ๋ํธ ์์ state๋ฅผ ์ถ๊ฐํ ํํ๋ผ๊ณ ๋ณผ ์ ์์.
์ด state๋ ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง ๋์ด๋ ๊ทธ๋๋ก ์ ์ง๋ ๊ฒ.
๋ํ ํด๋น ์ปดํฌ๋ํธ์์ State Hook์ ํ๋๋ง ์ฌ์ฉํ์ง๋ง ๋์ ๋ฐ๋ผ์ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ ์ ์์.
function Counter () {
const [counter, setCounter] = useState(0);
const handleIncrease = () => {
setCounter(counter + 1)
}
return (
<div>
<p>You clicked {counter} times</p>
<button onClick={handleIncrease}>
Click me
</button>
</div>
)
}
2. Hook์ด๋?
React 16.8์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ผ๋ก, class๋ฅผ ์์ฑํ์ง ์๊ณ ๋ state์ ๋ค๋ฅธ React์ ๊ธฐ๋ฅ ์ฌ์ฉ ๊ฐ๋ฅ
ํจ์ํ ์ปดํฌ๋ํธ์์ ์ํ๊ฐ ๋ฐ ๋ค๋ฅธ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ํธ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋ฉ์๋๋ฅผ ์๋ฏธ
class๊ฐ ์๋ function์ผ๋ก๋ง React๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํ๊ธฐ์, ํด๋์คํ ์ปดํฌ๋ํธ์์๋ ๋์ํ์ง ์์
3. Hook ์ฌ์ฉ ๊ท์น
1. ๋ฆฌ์กํธ ํจ์์ ์ต์์์์๋ง ํธ์ถํด์ผ ํจ
๋ฐ๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ, ์ค์ฒฉ๋ ํจ์ ๋ด์์ Hook ์คํ ์, ์์ํ ๋๋ก ๋์ํ์ง ์์ ์ฐ๋ ค๊ฐ ์์
์ปดํฌ๋ํธ ์์๋ Hook๋ค์ด ์ฌ๋ฌ ๋ฒ ์ฌ์ฉ๋ ์ ์๋๋ฐ, React๋ ์ด Hook์ ํธ์ถ๋๋ ์์๋๋ก ์ ์ฅ์ ํด๋์. ๊ทธ๋ฐ๋ฐ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ ์์์ Hook์ด ํธ์ถ๋๋ ์์๋๋ก ์ ์ฅ์ ํ๊ธฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ
2. ์ค์ง ๋ฆฌ์กํธ ํจ์ ๋ด์์๋ง ์ฌ์ฉ๋์ด์ผ ํจ
๋ฆฌ์กํธ๊ฐ ์๋, ๋ค๋ฅธ ์ผ๋ฐ JavaScript ํจ์ ์์์ ํธ์ถํด์๋ ์ ๋จ
Last updated