
ํด๋์ค ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ํจ์ ์ปดํฌ๋ํธ์์๋ ์ด์ฉํ ์ ์๋ React์ ํน์ํ ๊ธฐ๋ฅ๋ค์ ํจ์ ์ปดํฌ๋ํธ์์๋ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ฉ์๋๋ค
(ํจ์ ์ปดํฌ๋ํธ์์๋ ํด๋์ค ์ปดํฌ๋ํธ์ ๊ธฐ๋ฅ์ ๋ง์น ๋์์ฑ๋ฏ์ด(hook) ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ค๋ค)
HookExam.jsx
const HookExam = () => {
return <div>HookExam</div>;
};
export default HookExam;
App.jsx
import "./App.css";
import Register from "./components/Register";
import HookExam from "./components/HookExcam";
function App() {
return (
<>
<HookExam/>
</>
);
}
export default App;
์ด๋ ๊ฒ ์์ฑํ๋ฉด state๊ฐ ์ธ๋ถ์ ์์ด์ ์ค๋ฅ ํ์๊ฐ ๋ ์ผํ๋๋ฐ ์ค๋ฅ๊ฐ ์๋ ์ ๋นํฉ ;;
ํน์ ๋ชฐ๋ผ์ ๋ธ๋ผ์ฐ์ ์ฝ์์ฐฝ ํ์ธํ๋๋
Invalid hook call. Hooks can only be called inside of the body of a function component.
ํ ~ ์ด์ ๋ง์์ด ํธ์ํด์ง๋ค.
์ค๋ฅ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ const state = useState(); ๋ฅผ ํจ์ ์ปดํฌ๋ํธ ์์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
import { useState } from "react";
const HookExam = () => {
const state = useState();
return <div>HookExam</div>;
};
export default HookExam;
์กฐ๊ฑด๋ถ๋ก ํธ์ถ : ์กฐ๊ฑด๋ฌธ์ด๋ ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์์ hook์ด ํธ์ถ๋๋ค.
: React๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ปดํฌ๋ํธ๋ค์ ํธ์ถํด์ ํ๋ฉด์ ๋ ๋๋งํ ๋ ์ด๋ฐ ์กฐ๊ฑด๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ ๋ด๋ถ์์ hook์ ํธ์ถํ๊ฒ๋๋ฉด ์๋ก ๋ค๋ฅธ hook๋ค์ ํธ์ถ ์์๊ฐ ์๋ง์ด ๋์ด๋ฒ๋ฆฌ๋ ํ์์ด ๋ฐ์ โก๏ธ ๋ด๋ถ์ ์ธ ์ค๋ฅ๊ฐ ๋ฐ์
const HookExam = () => {
const [input,setInput] = useState("");
const onChange = (e) =>{
setInput(e.target.value);
}
const state = useState();
return (
<div>
<input value={input} onChange={onChange}/>
</div>
);
};
์์ ๋ด์ฉ์ custom hook๋ก ๋ง๋ค์ด๋ณด๊ธฐ !
import { useState } from "react";
function useInput() {
const [input, setInput] = useState("");
const onChange = (e) => {
setInput(e.target.value);
}
return [input, onChange];
}
const HookExam = () => {
const [input, onChange] = useInput();
const [input2, onChange2] = useInput();
return (
<div>
<input value={input} onChange={onChange}/>
<input value={input2} onChange={onChange2}/>
</div>
);
};
export default HookExam;
๊ทธ๋ฅ ํจ์ ์์ use๋ง ๋ถ์ด๋ฉด custom hook์ด ์์ฑ๋๋ค.
(๊ทผ๋ฐ use๋์ get์ ์จ๋ ์ค๋ฅ๊ฐ ์๋,,, react ๋ ํผ๋ฐ์ค ๋ณด๋ฉด ๋๋๊ฒ ๋ง์ ๊ฒ ๊ฐ๊ธฐ๋ํ๊ณ ์๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ,,, help.....)
๋ณดํต scr ๋๋ ํ ๋ฆฌ ์๋์ Hooks ๋ผ๋ ๋ณ๋์ ํด๋๋ฅผ ๋ง๋ค๊ณ ์ฌ๊ธฐ์ Hook์ ์ด๋ฆ์ผ๋ก ๋ณด๊ดํ๋ค.
