ํฐ์คํ ๋ฆฌ ๋ทฐ
custom hook
๐ํน์ง
- input์ ๊ฐฏ์์ ๋ฐ๋ผ useState์ e.handler๊ฐ ๋์ด๋๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ
- ์ปดํฌ๋ํธ๋ก ๊ตฌํํ๋ useState์ handler๋ฅผ ๋ฐ๋ก ํจ์๋ก ๋ง๋ฌ
๐์ฃผ์์ฌํญ
- ํจ์ ์ด๋ฆ์ use๋ก ์์
- ํ์ผ์ด๋ฆ์ ์๊ด X
- ๋ณดํต src ํด๋ > hooks ๋ผ๋ ํด๋๋ก ์ปค์คํ ํ ๋ค์ ๋ณด๊ด
- ๊ธฐ๋ฅ์ ์ปค์คํ ํ ์ ๋ง๋ค๊ธฐ์ ๊ณผ ๋์ผํ๊ฒ ์๋ํ๋, ์ค๋ณต์ฝ๋๊ฐ ์ฌ๋ผ์ง๊ณ ์ ์ฒด์ ์ธ ์ฝ๋์ ์๋ ๊ฐ์
๐์ ์ฉ ๋ฐฉ๋ฒ
- js ํ์ผ์์ use~ ํจ์ ์์ฑ
- ์ด ํ ์ [ ] ์ ๋ฐํํ๋๋ฐ, ์ฒซ๋ฒ์งธ๋ value, ๋๋ฒ์งธ๋ ํธ๋ค๋ฌ๋ฅผ ๋ฐํํจ.
- value๋ useState๋ก ๊ด๋ฆฌ
- ํธ๋ค๋ฌ ๋ก์ง ๊ตฌํ
// src/hooks/useInput.js
import React, { useState } from "react";
const useInput = () => {
// 2. value๋ useState๋ก ๊ด๋ฆฌํ๊ณ ,
const [value, setValue] = useState("");
// 3. ํธ๋ค๋ฌ ๋ก์ง๋ ๊ตฌํํฉ๋๋ค.
const handler = (e) => {
setValue(e.target.value);
};
// 1. ์ด ํ
์ [ ] ์ ๋ฐํํ๋๋ฐ, ์ฒซ๋ฒ์งธ๋ value, ๋๋ฒ์งธ๋ ํธ๋ค๋ฌ๋ฅผ ๋ฐํํฉ๋๋ค.
return [value, handler];
};
export default useInput;'Language > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [โ๏ธ] Redux - counter ์ฑ ์์ฑ, redux ์ฌ์ดํด, dispatch (0) | 2025.02.03 |
|---|---|
| [โ๏ธ] Redux - ์๊ฐ ๋ฐ ์ค์ + counter ์ฑ ์ธํ (store ๋ง๋ค๊ธฐ) (0) | 2025.02.01 |
| [โ๏ธ] memoization (0) | 2025.01.30 |
| [โ๏ธ] useContext (0) | 2025.01.30 |
| [โ๏ธ] useEffect, useRef (0) | 2025.01.30 |