ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

Language/React

[โš›๏ธ] custom hook

์ฑ„._. 2025. 1. 30. 21:27

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;
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ