Ant Design v4에서 동적으로 테마를 전환하는 방법

제목: Ant Design v4에서 동적으로 테마 전환하는 방법 이 튜토리얼에서는 Ant Design 버전 4에서 어두운 테마와 밝은 테마를 동적으로 전환하는 방법을 알아보겠습니다. 리액트 앱에서 동적 테마 전환기를 구현하고 싶거나 Ant Design의 테마 사용자 정의 옵션을 …

title_thumbnail(Ant Design v4에서 동적으로 테마를 전환하는 방법)

제목: Ant Design v4에서 동적으로 테마 전환하는 방법

이 튜토리얼에서는 Ant Design 버전 4에서 어두운 테마와 밝은 테마를 동적으로 전환하는 방법을 알아보겠습니다. 리액트 앱에서 동적 테마 전환기를 구현하고 싶거나 Ant Design의 테마 사용자 정의 옵션을 작동하는 방법을 이해하고 싶다면 당신을 도와드리겠습니다.

왜 테마를 동적으로 전환해야 할까요?

테마를 동적으로 전환하면 사용자가 자신의 브라우징 경험을 개인화하고 시각적으로 더 매력적으로 만들 수 있습니다. Ant Design의 유연한 사용자 정의 옵션을 통해 사용자가 기호에 따라 어두운 테마와 밝은 테마를 전환할 수 있는 원활한 방법을 제공할 수 있습니다. 구현 세부 사항으로 들어가 봅시다.

단계 1: 테마 파일 설정하기

먼저, 프로젝트 디렉토리 내에 “themes”라는 이름의 폴더를 생성하세요. “themes” 폴더 내부에 다음과 같이 여섯 개의 파일을 생성하세요:

1. dark-theme.css

@import "~antd/dist/antd.dark.css";

2. dark-theme.jsx

import "./dark-theme.css";

const DarkTheme = () => <></>;

export default DarkTheme;

3. light-theme.css

@import "~antd/dist/antd.css";

4. light-theme.jsx

import "./light-theme.css";

const LightTheme = () => <></>;

export default LightTheme;

5. use-theme.js

import { useEffect, useState } from "react";

const DARK_MODE = "dark-mode";

const getDarkMode = () => JSON.parse(localStorage.getItem(DARK_MODE)) || false;

export const useTheme = () => {
  const [darkMode, setDarkMode] = useState(getDarkMode);

  useEffect(() => {
    const initialValue = getDarkMode();
    if (initialValue !== darkMode) {
      localStorage.setItem(DARK_MODE, darkMode);
      window.location.reload();
    }
  }, [darkMode]);

  return [darkMode, setDarkMode];
};

6. theme-provider.jsx

import { lazy, Suspense } from "react";
import { useTheme } from "./use-theme";

const DarkTheme = lazy(() => import("./dark-theme"));
const LightTheme = lazy(() => import("./light-theme"));

export const ThemeProvider = ({ children }) => {
  const [darkMode] = useTheme();

  return (
    <>
      <Suspense fallback=<span />>
        {darkMode ? <DarkTheme /> : <LightTheme />}
      </Suspense>
      {children}
    </>
  );
};

이 파일들은 Ant Design에서 테마 관리와 동적 전환에 필수적입니다.

단계 2: 테마 전환기 통합하기

메인 레이아웃 컴포넌트에서 useTheme 훅과 가져온 테마 파일을 사용하여 테마 전환기를 구현할 수 있습니다:

import React from "react";
import { useTheme } from "./themes/use-theme";

const Layout = () => {
  const [darkMode, setDarkMode] = useTheme();

  return (
    <div className={`layout ${darkMode ? "dark" : "light"}`}>
      <h1>Your App</h1>
      <button onClick={() => setDarkMode(!darkMode)}>
        테마 전환
      </button>
      <p>Lorem ipsum dolor sit amet...</p>
    </div>
  );
};

export default Layout;

위 코드 스니펫에서 useTheme 훅을 사용하여 현재 테마 모드와 테마 전환 기능인 setDarkMode 함수에 접근합니다. darkMode 불리언 변수는 레이아웃에 적용되는 테마를 결정합니다.

단계 3: 동적 테마 전환을 즐기세요

설정이 완료되었으므로 이제 Ant Design v4 애플리케이션에서 동적 테마 전환이 가능합니다. 테마 파일을 사용자 정의하고 스타일을 필요에 맞게 조정하고 사용자에게 향상된 사용자 경험을 제공하세요.

결론

이 튜토리얼에서는 Ant Design v4에서 어두운 테마와 밝은 테마를 동적으로 전환하는 방법을 알아보았습니다. 테마 파일을 설정하고 테마 전환기를 통합하고 useTheme 훅을 활용함으로써 리액트 애플리케이션에 동적 테마 전환 기능을 원활하게 구현할 수 있습니다. Ant Design의 사용자 정의 옵션을 활용하여 사용자가 앱의 외관을 개인화할 수 있도록 하여 사용자 경험을 향상시키세요.

오늘 동적 테마 전환을 구현하여 사용자에게 몰입력 높고 시각적으로 매력적인 경험을 제공하세요!

참고 자료 : 

reactjs

Leave a Comment