개발자

재사용을 자주하는 모달 컴포넌트 관리

2023년 04월 24일조회 322

혹시 모달컴포넌트 같은경우는 재사용할일이 많은데 최상위단에 모달컴포넌트 생성해놓고 쓰시나요? 최상위에 등록 해놓고 state로 온오프 관리하고 서비스기능은 따로 모듈로 빼서 const [setOpen, setClose] = useModalHandler({ title, description }) 이런식으로 사용하려고 생각했습니다. 다른 방법이나 위 내용에 대해 조언 부탁드립니다!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

이재찬님의 프로필 사진

네. 모달과 같은 성격의 컴포넌트들은 최상단에 구현해놓고 이용하는게 쓸데없는 렌더링을 줄이고, 관리도 용이해져서 그렇게 구현합니다. title, description 같은 것을 어떻게 넣을지는 본인 프로젝트에 맞게 구현하시면 되고, 처음 컴포넌트를 만들 시 어느정도 확장성을 고려하여 설계하는 것을 추천드립니다. 그리고 상태관리를 통해, 모달 컴포넌트를 컨트롤하면 좀 더 좋을 것 같습니다. 모달 컴포넌트의 내부를 채우는 방법은 여러가지가 있겠지만, 개인적인 생각으로는 Portal 같은 기능을 활용하여 컴포넌트 내부의 확장성을 넓히는 방법이 주류로 쓰인다고 생각합니다. 혼자 구현하시는데 어려움이 있으시다면, 잘 만들어진 UI 프레임워크(라이브러리) 등의 코드를 github에서 좀 참고하시면 도움이 많이 될거라고 생각합니다.

커리어리 AI 봇님의 프로필 사진

모달 컴포넌트의 재사용 및 관리를 위해, 제안하신 방법이나 다른 접근 방식들을 사용할 수 있습니다. 제안하신 방법에 대해 설명하고, 추가적인 방법도 제시하겠습니다. 1. 제안하신 방법 (최상위 컴포넌트에서 모달 관리): 최상위 컴포넌트에 모달을 등록하고, 상태로 온/오프를 관리하는 방식은 전역 상태 관리를 위한 일반적인 접근 방식입니다. 이 경우, 모달이 필요한 하위 컴포넌트에서 'useModalHandler'와 같은 custom hook을 사용하여 모달을 제어할 수 있습니다. 이 방법의 장점은 모든 컴포넌트에서 동일한 모달 인스턴스를 사용하여 일관성을 유지할 수 있다는 것입니다. 단점은 최상위 컴포넌트에 모든 모달을 추가해야 하므로, 관리가 어려울 수 있다는 것입니다. 2. React Portal을 사용한 방법: React Portal은 DOM 계층 구조 외부에 컴포넌트를 렌더링하는 데 사용됩니다. 이 방법을 사용하면, 모달 컴포넌트가 DOM 트리의 최상위에서 렌더링되지만, React 컴포넌트 트리의 원하는 위치에서 호출할 수 있습니다. 이 방식은 모달 관리의 유연성을 높여줍니다. 3. Context API 및 custom hook을 사용한 방법: Context API를 사용하여 모달 관리 전용 컨텍스트를 생성할 수 있습니다. 이 컨텍스트에는 모달 상태와 관련된 로직이 포함되어 있습니다. 이후, custom hook을 통해 해당 컨텍스트에 접근하여 필요한 컴포넌트에서 모달을 제어할 수 있습니다. 이 방법은 모달 관리가 필요한 컴포넌트에서 쉽게 접근할 수 있는 상태 관리 솔루션을 제공하며, 코드의 가독성과 재사용성을 향상시킵니다. 결론적으로, 프로젝트의 요구 사항과 개발 환경에 따라 적절한 방법을 선택하는 것이 좋습니다. 기능의 모듈화와 컴포넌트 구조의 유지 보수성을 고려해야 합니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!