사용자에게 메시지를 줘야할 때, 지금까지는 SweetAlert2를 사용해 왔다.

그러나  서버 에러, 검색어 입력 등 간단한 메시지를 제공할 때에 alert의 UI 요소는 불필요하게 컸고, 웬만한 alert는 '확인' 버튼을 누르지 않는 한 닫히지 않아서 이를 대체할 것이 필요하였다.

 

불필요하게 직접 토스트 메시지를 custom할 필요 없는 라이브러리가 있을 것이라 확신해 검색하던 중 'react-hot-toast'라는 라이브러리를 발견해 공유하고자 한다.

 

Toast Message란 무엇일까

토스트 메시지사용자에게 간단한 정보를 잠깐 보여주는 UI 요소이다.

이름에서 알 수 있듯, 토스트처럼 화면의 특정 위치에서 떠오르고, 일정 시간이 지나면 사라지는 특징을 가지고 있다.

 

그렇다면 정보를 보여준다는 면에서 공통점이 있는 Alert와의 차이는 무엇일까?

Alert는 가벼운 정보보다는 특정 조건이 충족되었을 때 이름 그대로 알림을 보내는 기능을 한다.

대화 상자가 닫히기 전까지 코드의 나머지 부분은 실행되지 않고, 사용자에게 간단한 액션을 받을 수 있다.

 

react-hot-toast

 

react-hot-toast토스트 메시지를 띄워주는 라이브러리다.

공식 문서(https://react-hot-toast.com/docs)를 참조하면 더욱 자세한 정보를 알 수 있을 것이다.

 

설치

yarn add react-hot-toast
npm install react-hot-toast


사용 패키지 매니저에 따라 위 명령어를 입력해 라이브러리를 설치해준다.

기본 사용법

import toast, { Toaster } from 'react-hot-toast';

const notify = () => toast('Here is your toast.');

const App = () => {
  return (
    <div>
      <button onClick={notify}>Make me a toast</button>
      <Toaster />
    </div>
  );
};

 

Toaster 태그를 사용해 토스트 메시지 노출 페이지를 정할 수 있다.

 

필자 같은 경우엔 모든 컨테이너에 토스트 메시지가 필요하다 판단하여 

상위 js인 App.js <Toaster />만 넣어주고, 하위 js들에서 toast 노출 작업을 했다.

 

// 구현 코드
const search = () => {
  if (word === "") {
    toast("검색어를 입력해 주세요.", { duration: 800, icon: '⌨️'});
  } else {
    navigate(`/search?word=${word}`);
  }
};

 

위 토스트 메시지 구현 코드를 작성함으로써

검색어가 존재하지 않을 시 '검색어를 입력해 주세요' 라는 문구를 아이콘과 함께 띄울 수 있도록 하였다.

'프레임워크 및 라이브러리 > React' 카테고리의 다른 글

React 시작하기  (0) 2024.06.25
유영웅