React Hooks에서 상태 종속성을 리팩터링할 때 피해야 할 몇 가지 일반적인 실수가 있습니다.
1. 훅의 규칙을 따르지 않음:
- 루프, 조건 또는 중첩된 함수 내에서 Hooks를 호출하지 마세요. 대신, 조기 반환 전에 항상 React 함수의 최상위 수준에서 Hooks를 사용하세요.
- 일반 JavaScript 함수에서 Hooks를 호출하지 마세요. 대신 React 함수 구성요소나 사용자 정의 Hooks[1]에서 Hooks를 호출할 수 있습니다.
2. 후크를 현명하게 사용하지 않음:
- 불필요하게 Hooks를 사용하지 마세요. 필요할 때만 사용하고, 남용은 피하세요.
- 상태와 부작용을 관리하려면 Hooks를 사용하세요. 하지만 렌더링이나 스타일링과 같은 다른 목적으로는 사용하지 마세요[2].
3. 훅을 구성 및 구조화하지 않음:
- Hooks를 체계적이고 체계적으로 유지하세요. 다양한 유형의 후크를 함께 혼합하지 마십시오.
- 사용자 정의 후크를 사용하여 복잡한 논리를 캡슐화하고 코드를 더 읽기 쉽게 만듭니다[2].
4. ESLint 플러그인을 사용하지 않음:
- ESLint 플러그인을 사용하여 Hooks 규칙을 시행하세요. 이를 통해 오류를 포착하고 코드가 모범 사례를 따르도록 할 수 있습니다[1].
5. 훅을 테스트하지 않음:
- Hooks에 대한 단위 테스트를 작성하여 예상대로 작동하는지 확인하고 극단적인 경우를 적절하게 처리합니다.
- Jest 또는 기타 테스트 프레임워크를 사용하여 Hooks[4]를 테스트하세요.
6. Unstated Next를 사용하지 않음:
- 중앙 위치에서 상태를 관리하려면 Unstated Next를 사용하세요. 이는 상태 종속성을 줄이고 코드를 보다 유지 관리하기 쉽게 만드는 데 도움이 될 수 있습니다[5].
7. 모범 사례를 따르지 않음:
- 불필요한 상태를 피하고 상태 공유를 위해 컨텍스트 API를 사용하는 등 React에서 상태를 관리하기 위한 모범 사례를 따릅니다[3].
8. 맵 및 렌더 배열을 동적으로 사용하지 않음:
- 불필요한 렌더링을 방지하고 성능을 향상시키기 위해 맵 및 렌더 배열을 동적으로 사용합니다[3].
9. 부작용을 위해 후크를 사용하지 않음:
- 데이터 가져오기 또는 타이머 설정과 같은 부작용에 후크를 사용하세요. 렌더링이나 스타일링에 사용하지 마세요[2].
10. 복잡한 로직에 후크를 사용하지 않음:
- 여러 상태 변수나 부작용이 포함된 복잡한 논리에는 Hook을 사용하세요. 다른 수단으로 처리할 수 있는 간단한 논리에는 사용하지 마세요[2].
이러한 일반적인 실수를 피함으로써 React Hooks가 잘 구조화되고 유지 관리가 가능하며 효율적이라는 것을 확인할 수 있습니다.
인용:[1] https://legacy.reactjs.org/docs/hooks-rules.html
[2] https://www.smashingmagazine.com/2020/04/react-hooks-best-practices/
[3] https://bosctechlabs.com/react-hooks-practices-in-2024/
[4] https://www.linkedin.com/pulse/react-hooks-best-practices-efficient-maintainable-code-sasidhran-djlfc
[5] https://css-tricks.com/managing-state-in-react-using-unstated-next/