MEGJEGYZÉS: Ez az oktatóanyag azoknak a fejlesztőknek szól, akik CSS-in-JS stílusmódszert használnak, pl. Emotion.js, Material UI stb.
1. lépés: Használja a Recoil atom elemet az aktuálisan kiválasztott téma nevéhez
import { PaletteMode } from "@mui/material";
import { atom } from "recoil"; export const ThemeName = atom<PaletteMode>({ key: "ThemeName", effects: []
});
2. lépés: Használja a Recoil választót az aktuálisan kiválasztott témaobjektumhoz
import { createTheme } from "@mui/material";
import { selector } from "recoil"; export const Theme = selector({ key: "Theme", dangerouslyAllowMutability: true, get(ctx) { const name = ctx.get(ThemeName); return createTheme(); },
});
3. lépés: Adja hozzá useTheme()
, useToggleTheme()
React horgok
import { useRecoilValue, useRecoilCallback } from "recoil"; export function useTheme() { return useRecoilValue(Theme);
} export function useToggleTheme() { return useRecoilCallback( (ctx) => () => { ctx.set(ThemeName, (prev) => (prev === "dark" ? "light" : "dark")); }, [] );
}
4. lépés: Mentse/visszaállítsa az aktuálisan kiválasztott téma nevét ide/honnan localStorage
export const ThemeName = atom<PaletteMode>({ key: "ThemeName", effects: [ (ctx) => { const storageKey = "theme"; if (ctx.trigger === "get") { const name: PaletteMode = localStorage?.getItem(storageKey) === "dark" ? "dark" : localStorage?.getItem(storageKey) === "light" ? "light" : matchMedia?.("(prefers-color-scheme: dark)").matches ? "dark" : "light"; ctx.setSelf(name); } ctx.onSet((value) => { localStorage?.setItem(storageKey, value); }); }, ],
});
5. lépés: Adja hozzá ThemeProvider
a legfelső szintű React komponenshez
import { ThemeProvider } from "@mui/material";
import { useTheme } from "../theme/index.js"; function App(): JSX.Element { const theme = useTheme(); return ( <ThemeProvider theme={theme}> {/* ... */} </Theme> );
}
Lát app/theme/index.ts
in React Starter Kit
Tudástár
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://www.codementor.io/koistya/how-to-implement-ui-theme-switching-dark-mode-with-react-and-recoil-1vvjynmi1e
Még több Codementor React Fact
(VIDEO) NodeJS és React – Élő adás a Render használatával
Forrás csomópont: 1776510
Időbélyeg: 7. november 2022.
React, Tremor & Tailwind – Kódolóstatisztikák a GitHub API-n keresztül
Forrás csomópont: 1775346
Időbélyeg: 7. december 2022.
React oldalanimáció a react-spring használatával
Forrás csomópont: 1781489
Időbélyeg: 2. augusztus 2022.
Mi használható nagy reakcióképes komponensek refaktorizálására
Forrás csomópont: 1779701
Időbélyeg: 17. augusztus 2022.
Választás az osztályösszetevők és a funkcionális komponensek között a Reactban
Forrás csomópont: 1886369
Időbélyeg: 9. január 2023.
Hagyományos CMS vs. Headless CMS – A teljes összehasonlítás
Forrás csomópont: 1891610
Időbélyeg: 11. január 2023.
miért többnyire a fejlesztők részesítik előnyben a reagálást a szögletes helyett
Forrás csomópont: 2033927
Időbélyeg: 26. március 2023.