Skip to content

코드 비교

overlay-kit를 사용하면 React 오버레이 관리가 쉬워져요. 예제 코드로 변화를 살펴볼게요.

overlay-kit 사용 전후 코드 비교

Before: 기존 React 오버레이 구현 코드

overlay-kit를 사용하기 전에는 보일러플레이트 코드가 많고, React의 Hook 규칙 때문에 상태 선언, 변경, 렌더링 로직이 분리되어 코드의 흐름이 끊겨있어요. isOpen 상태를 선언하는 곳, 상태를 바꾸는 onClick, 상태에 따라서 렌더링하는 <Dialog /> 컴포넌트가 멀리 떨어져 있죠.

tsx
import { useState } from 'react';

function MyPage() {
  const [isOpen, setIsOpen] = useState(false);
  /* 다른 Hook 호출 ... */
  return (
    <>
      {/* 다른 컴포넌트 ... */}
      <Button
        onClick={() => {
          setIsOpen(true);
        }}
      >
        열기
      </Button>
      {/* 다른 컴포넌트... */}
      <Dialog
        open={isOpen}
        onClose={() => {
          setIsOpen(false);
        }}
      />
    </>
  );
}

After: overlay-kit를 사용한 오버레이 구현

반면 overlay-kit을 사용한 코드를 보면 코드 응집도가 높고 직관적이에요. 버튼을 클릭하면 오버레이가 열린다라고 하는 코드의 흐름이 한 눈에 들어오죠.

tsx
import { overlay } from 'overlay-kit';

function MyPage() {
  /* 다른 Hook 호출 ... */

  return (
    <>
      {/* 다른 컴포넌트... */}
      <Button
        onClick={() => {
          overlay.open(({ isOpen, close }) => {
            return <Dialog open={isOpen} onClose={close} />;
          });
        }}
      >
        열기
      </Button>
    </>
  );
}

보일러플레이트 코드도 크게 줄었어요. 오버레이 상태를 더 이상 직접 관리하지 않아도 되거든요.

MIT 라이선스에 따라 배포됩니다.