reactjs - Hvordan dele opp MUI v5-tema i separate filer etter temaalternativer?
Jeg har et veldig stort MUI v5-tema med rundt 800 linjer (inkludert TypeScript-typetilpasning). Noe som dette:
let myTheme = createTheme({
palette: {
primary: {
// lots of custom props
},
secondary: {
// lots of custom props
},
},
typography: {
// lots of custom variants
},
});
Jeg vil gjerne dele denne enorme filen inn i separate filer etter temaelementer. Slik:
- palett.ts
- typografi.ts
- ...osv.
Deretter i theme.ts oppretter du et tema basert på disse filene. Hvordan kan jeg gjøre det? Og hvordan håndterer jeg TypeScript typeforlengelse i dette tilfellet (hvor skal typeforlengelsen oppbevares).
Svar #1
Du utvider ikke helt tematisk kode og temaegenskaper, men jeg bygger vanligvis ut mine temaer fra en katalog kalt theme, og min createTheme er i en index.js-fil:
primær
primary.ts med dets logikk
const primary = {
// lots of custom props
}
export default primary
sekundær
secondary.ts med dets logikk
const secondary = {
// lots of custom props
}
export default secondary
typografi
typography.ts med logikken sin
const typography = {
// lots of custom props
}
export default typography
tema
ta inn filene og legg dem til:
import primary from './primary.ts'
import secondary from './secondary.ts'
import typography from './typography.ts'
const myTheme = createTheme({
palette: {
primary,
secondary
},
typography
});
