useRef & Custom Hook

useRef

Reference(μ°Έμ‘°) λ§κ·ΈλŒ€λ‘œ ν• λ‹Ήν•œ 값을 μ°Έμ‘°ν•˜λŠ” 객체λ₯Ό λ°˜ν™˜ν•œλ‹€.

useRef νŠΉμ§•

  • μ»΄ν¬λ„ŒνŠΈ 생애주기 전체에 κ±Έμ³μ„œ μœ μ§€λ˜λŠ” 객체, 즉, μ»΄ν¬λ„ŒνŠΈκ°€ μ–Έλ§ˆμš΄νŠΈλ  λ•Œ κΉŒμ§€ μœ μ§€λœλ‹€.

  • 값이 λ³€κ²½ λ˜μ–΄λ„ λ¦¬λ Œλ”λ§μ„ μœ λ°œν•˜μ§€ μ•ŠλŠ”λ‹€.

useRefλ₯Ό μ–Έμ œ μ“°λ‚˜

  • μ»΄ν¬λ„ŒνŠΈκ°€ μ–Έλ§ˆμš΄νŠΈλ  λ•Œ κΉŒμ§€ λ™μΌν•œ 값을 써야 ν•˜λŠ” 경우 β†’ input의 IDλ₯Ό 관리할 λ•Œ

  • DOM μš”μ†Œμ— 직접 μ ‘κ·Όν•΄μ„œ μ œμ–΄ν•  λ•Œ 자주 μ‚¬μš©λœλ‹€ β†’ ν• λ‹Ήν•œ DOM μš”μ†Œμ— 포컀싱

  • μƒνƒœμ˜ 이전 κ°’κ³Ό λΉ„κ΅ν•΄μ„œ νŠΉμ •ν•œ μž‘μ—…μ„ 처리 ν•  λ•Œ

  • setTimeout, setInterval λ“± 타이머 IDλ₯Ό μ €μž₯ν•  λ•Œ

Custom Hook

React의 Hook을 μ‘°ν•©ν•˜μ—¬ νŠΉμ •ν•œ κΈ°λŠ₯을 μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ½”λ“œλ‘œ λ§Œλ“œλŠ” 것

μ»€μŠ€ν…€ ν›… κ·œμΉ™

  • Reactμ—μ„œ μ œκ³΅ν•΄μ£ΌλŠ” ν›…λ“€μ˜ 넀이밍 처럼 μ•žμ— use λ₯Ό λΆ™μ—¬ μΉ΄λ©œμΌ€μ΄μŠ€λ‘œ μ‚¬μš©

  • 기본적인 Hook의 κ·œμΉ™λ“€κ³Ό 동일

μ»€μŠ€ν…€ ν›… μž₯점

  • μ»΄ν¬λ„ŒνŠΈμ—μ„œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 UIλ₯Ό λΆ„λ¦¬ν•˜μ—¬ 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ„ λ†’νž 수 μžˆλ‹€.

  • λ‘œμ§μ„ λΆ„λ¦¬ν•˜κ³  μ˜λ―ΈμžˆλŠ” 이름을 λΆ€μ—¬ν•¨μœΌλ‘œμ¨, μ½”λ“œμ˜ 좔상화 μˆ˜μ€€μ„ λ†’νž 수 μžˆλ‹€.

  • μž¬μ‚¬μš©μ„±μ„ 높이고 μ€‘λ³΅λ˜λŠ” μ½”λ“œλ₯Ό 쀄일 수 μžˆλ‹€.

  • ν•˜λ‚˜μ˜ λͺ©μ μ„ κ°€μ§€λŠ” μ½”λ“œλ₯Ό μ»€μŠ€ν…€ ν›…μœΌλ‘œ μΆ”μΆœν•˜μ—¬ 응집도λ₯Ό λ†’νž 수 μžˆλ‹€.

μ»€μŠ€ν…€ ν›… μ•ˆν‹°νŒ¨ν„΄

  • λΆˆν•„μš”ν•œ 좔상화

    • UIλ₯Ό μ œμ™Έν•œ μ½”λ“œλ₯Ό λͺ¨λ‘ μ»€μŠ€ν…€ ν›…μœΌλ‘œ 숨기게 되면 였히렀 μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κΈ° μ–΄λ €μ›Œμ§„λ‹€.

    • μˆ¨κ²¨λ„ λ˜λŠ” λ‘œμ§μ€ μ»€μŠ€ν…€ 훅에 숨기고, 핡심 λ‘œμ§μ€ μ»΄ν¬λ„ŒνŠΈ 내에 λ‘λŠ” 것이 더 쒋을 수 μžˆλ‹€.

  • λ„ˆλ¬΄ λ§Žμ€ μ±…μž„

    • ν•˜λ‚˜μ˜ μ»€μŠ€ν…€ν›…μ— μ—¬λŸ¬ 역할이 μ„žμ—¬μžˆμœΌλ©΄ ν•΄λ‹Ή 훅을 μ‚¬μš©ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈκ°€ μ§€λ‚˜μΉ˜κ²Œ λ³΅μž‘ν•΄ 질 수 μžˆλ‹€.

    • μ»€μŠ€ν…€ 훅도 λ§ˆμ°¬κ°€μ§€λ‘œ λ‹¨μΌμ±…μž„μ›μΉ™μ— 따라 μž‘μ„±λ˜μ–΄μ Έμ•Ό ν•œλ‹€.

Last updated