Table of contents
Hook
Hook = ๊ฐ๊ณ ๋ฆฌ ๐ช
ํน์ง
hook ์ class component์์๋ง ์ฌ์ฉํ ์ ์์๋ state๊ด๋ฆฌ์ lifecycle๊ด๋ฆฌ๊ธฐ๋ฅ์ function component์์๋ ์ฌ์ฉํ ์ ์๋๋ก hook in(์ฐ๋) ํด์ฃผ๋ function ์ ์๋ฏธํ๋ฉฐ, ์ด๋ฌํ hook๋ค์ ๋ชจ์์ hooks๋ผ๊ณ ํ๋ค.
hook
์ class component์ ์๋ ๊ธฐ๋ฅ์ function component์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋์จ ๊ฐ๋ ์ด๊ธฐ ๋๋ฌธ์ only function component์์ ์ฌ์ฉ ๊ฐ๋ฅ!hook์ ์ด๋ฆ์ ๋ฐ๋์
use-
๋ก ์์React์์ ์ ๊ณตํ๋ ๋ด์ฅ hook์ด ์กด์ฌ useState, useEffect ... )
๋ด์ฅ hook์ ์ธ๋ถ library๋ฅผ installํ์ง ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ
- Customs hook : ์ง์ hook์ create
์ฌ์ฉ ๊ท์น
hook์ ํธ์ถํ ์ ์๋ ๊ณณ -> function component ๋ด๋ถ & custom hook ๋ด๋ถ (์์ 2 ๊ณณ์ ์ ์ธํ๊ณ ๋ hook ํธ์ถ ๋ถ๊ฐ)
hook์ ํญ์ function component ๋ด์ ์ต์์at the top level)์์๋ง ํธ์ถํด์ผํจ (๋ฐ๋ณต๋ฌธ, ์กฐ๊ฑด๋ฌธ ๋ฑ ์ค์ฒฉ๋ function ๋ด์์๋ hook ํธ์ถ ๋ถ๊ฐ)
(function์์์ ์ต์์)
// useState Hook์ ์ต์์์์ ํธ์ถ
// Test.js
import React, { useState } from 'react';
const Test = () => {
const [color, setColor] = useState('red');
if (5 > 3) {
console.log('true');
}
return <div>Hello!</div>;
};
export default Test;
Props
component์ ์์ฑ๊ฐ(property)
-> parent component๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ง๋๊ณ ์๋ Object
- ์ ๋ฌํ๊ณ ์ ํ๋ ์ด๋ค ๊ฐ์ด๋ ์์ ์ปดํฌ๋ํธ์ ์ ๋ฌ ๊ฐ๋ฅ
-> text, number, variables, function
State
component๋ด๋ถ์ ๊ฐ์ง๊ณ ์๋ component์ ์ํ๊ฐ
ํด๋น component๊ฐ UI์ ๋ณด์ฌ์ค ์ ๋ณด๋ฅผ ๊ฒฐ์ ํ ๋ ์ฌ์ฉํ ์ ์๋ ์ํ๊ฐ
component๋ด์์ ์ ์ํ๊ณ ์ฌ์ฉํ๋ฉฐ ์ผ๋ง๋ ์ง ๋ณ๊ฒฝํ ์ ์๋ค.
- useState์ ์ฒซ ๋ฒ์งธ ์์์ธ
state
๋ฅผ ํตํด ๋์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ ํ๋ ๊ฐ์ ํ ๋นํ ์ ์๋ค. - useState์ ๋ ๋ฒ์งธ ์์์ธ
setState
ํจ์๋ฅผ ํตํดstate
๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์๋ค.