๊ด€๋ฆฌ ๋ฉ”๋‰ด

Bin's Blog

[์œ ๋ฐ๋ฏธx์Šค๋‚˜์ดํผํŒฉํ† ๋ฆฌ] 10์ฃผ ์™„์„ฑ ํ”„๋กœ์ ํŠธ ์บ ํ”„ 23์ผ์ฐจ - ๋ฆฌ์•กํŠธ(4) ๋ณธ๋ฌธ

ํ•™์Šต์ผ์ง€

[์œ ๋ฐ๋ฏธx์Šค๋‚˜์ดํผํŒฉํ† ๋ฆฌ] 10์ฃผ ์™„์„ฑ ํ”„๋กœ์ ํŠธ ์บ ํ”„ 23์ผ์ฐจ - ๋ฆฌ์•กํŠธ(4)

hotIce 2023. 6. 28. 18:02
728x90

 

๐Ÿ“š ์ปค์Šคํ…€ ํ›…(Hook)

๐Ÿ‘‰ ์ปค์Šคํ…€ ํ›…(Custom Hooks)์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ํ›…์„ ๋งํ•˜๋ฉฐ, ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์— ์ƒํƒœ ๋กœ์ง์„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

๐Ÿ‘‰ ์ปค์Šคํ…€ ํ›…์€ ๊ธฐ๋ณธ ํ›…์„ ํ™œ์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง€๋ฉฐ, ์ด๋ฆ„์€ "use"๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

 

๐Ÿ“– ์‚ฌ์šฉ์˜ˆ์‹œ

๐Ÿ‘‰ ์ปค์Šคํ…€ ํ›…

import {useState} from "react"

function useCounter(initialCount) {
   const [count, setCount] = useState(initialCount);
   
   const increment = () => {
     setCount(count + 1)
   }
   return {count, increment};


}

export default useCounter

๐Ÿ‘‰ ์ปดํฌ๋„ŒํŠธ

import useCounter from "../hooks/countHook";
import React from "react";

function UseCount() {
  const { count, increment } = useCounter(100)
  return (
    <div>
      <p>์นด์šดํŠธ : {count}</p>
      <button onClick={increment}>์ฆ๊ฐ€</button>    
    <div>  
  
  )

}

export default UseCount

 

๐Ÿ’ป ์ฝ”๋“œ ์ง„ํ–‰ ์ˆœ์„œ

๐Ÿ‘‰ ์œ„์— ์ปค์Šคํ…€ ํ›…์—์„œ useCounter๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์ธ์ž๋Š” ์–ด๋–ค ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค. 

๐Ÿ‘‰ ๊ทธ ๊ฐ’์„ useState()ํ•จ์ˆ˜๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. 

๐Ÿ‘‰ increment()๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ธฐ์กด์˜ ๊ฐ’์— 1์”ฉ ๋”ํ•œ๋‹ค. 

๐Ÿ‘‰ return ํ•  ๋•Œ ๋‚ด๊ฐ€ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๊ฐ’์„ ๊ฐ์ฒด๋กœ ๊ฐ์‹ธ์ค€๋‹ค.

๐Ÿ‘‰ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ฒ˜์Œ์— ํ•ด๋‹น ํŒŒ์ผ์„ import ํ•ด์ค€๋‹ค.

๐Ÿ‘‰ useCounter์— 100์ด๋ผ๋Š” ์ˆซ์ž๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ์ปค์Šคํ…€ ํ›…์—์„œ ๊ทธ ๊ฐ’์„ ์ธ์ž๋กœ ๋ฐ›๋Š”๋‹ค. 

๐Ÿ‘‰ ๊ทธ๋ฆฌ๊ณ  ์ปค์Šคํ…€ ํ›…์—์„œ ๋ฆฌํ„ดํ•œ ๊ฐ’์„ ๊ตฌ์กฐ๋ถ„ํ•ดํ• ๋‹น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 

๐Ÿ‘‰ ๊ทธ๋ฆฌ๊ณ  ์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๋ฉด ๋œ๋‹ค. 

 

 

 

 ๋ณธ ํ›„๊ธฐ๋Š” ์œ ๋ฐ๋ฏธ-์Šค๋‚˜์ดํผํŒฉํ† ๋ฆฌ 10์ฃผ ์™„์„ฑ ํ”„๋กœ์ ํŠธ์บ ํ”„ ํ•™์Šต ์ผ์ง€ ํ›„๊ธฐ๋กœ ์ž‘์„ฑ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

728x90