Home customhook
Post
Cancel

customhook

๐Ÿ“Œ customHook

์ฐธ๊ณ  ์ฃผ์†Œ

https://react.vlpt.us/basic/21-custom-hook.html

โœ๏ธ ์ปค์Šคํ…€ ํ›…

์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๋‹ค๋ณด๋ฉด, ๋ฐ˜๋ณต๋˜๋Š” ๋กœ์ง์ด ์ž์ฃผ ๋ฐœ์ƒ๊ธฐ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋กœ์ง๋“ค์„ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๊ฒŒ hook์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.

์ปค์Šคํ…€ Hooks ๋ฅผ ๋งŒ๋“ค ๋•Œ์—๋Š” ๋ณดํ†ต ์ด๋ ‡๊ฒŒ use ๋ผ๋Š” ํ‚ค์›Œ๋“œ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•จ

์ปค์Šคํ…€ Hooks ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๊ทธ ์•ˆ์—์„œ useState, useEffect, useReducer, useCallback ๋“ฑ Hooks ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์ฃผ๊ณ , ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฐ’๋“ค์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋ฉด ๋œ๋‹ค~

์˜ˆ๋ฅผ ๋“ค์–ด input์„ ๊ด€๋ฆฌํ•˜๋Š” ํ›…์„ ๋งŒ๋“ค๋ฉด

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import { useState, useCallback } from "react";

function useInputs(initialForm) {
  const [form, setForm] = useState(initialForm);
  // change
  const onChange = useCallback((e) => {
    const { name, value } = e.target;
    setForm((form) => ({ ...form, [name]: value }));
  }, []);
  const reset = useCallback(() => setForm(initialForm), [initialForm]);
  return [form, onChange, reset];
}

export default useInputs;

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ๋“ค๊ณ ๊ฐ€์„œ ์“ฐ๋ฉด๋œ๋‹ค.

์ฃผ์˜ ํ• ์ ์€ customHook๋„ Hook์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปดํฌ๋„ŒํŠธ์˜ ์ตœ์ƒ์œ„ ์Šค์ฝ”ํ”„์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. useState, useEffect, useReducer, useCallback ์ฒ˜๋Ÿผ

This post is licensed under CC BY 4.0 by the author.

useMemo

NextJS