Для работы с библиотекой MUI необходима актуальная версия Node.js, включающая менеджер пакетов npm. Node.js обеспечивает выполнение JavaScript вне браузера, а npm используется для установки библиотек и управления зависимостями проекта.
Скачивание Node.js: официальный сайт nodejs.org предлагает LTS-версию, которая подходит для большинства проектов.
Проверка установки:
node -v
npm -v
Команды должны вывести версии Node.js и npm соответственно.
MUI предназначен для интеграции с React, поэтому первым шагом
является создание нового React-приложения. Используется
create-react-app или Vite для более
современного подхода.
Пример с create-react-app:
npx create-react-app my-app
cd my-app
npm start
Пример с Vite:
npm create vite@latest my-app
cd my-app
npm install
npm run dev
MUI состоит из нескольких пакетов: базовый
@mui/material, иконки @mui/icons-material и
тема @mui/system. Рекомендуется устанавливать все
необходимые пакеты одновременно:
npm install @mui/material @mui/icons-material @mui/system @emotion/react @emotion/styled
@emotion/react и @emotion/styled необходимы
для стилизации компонентов через систему Emotion, которая встроена в
MUI.
MUI поддерживает систему тем, позволяющую централизованно управлять цветами, типографикой и стилями компонентов.
Пример базовой настройки темы:
import { createTheme, ThemeProvider } from '@mui/material/styles';
import CssBaseline from '@mui/material/CssBaseline';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
const theme = createTheme({
palette: {
primary: { main: '#1976d2' },
secondary: { main: '#dc004e' },
},
typography: {
fontFamily: 'Roboto, Arial, sans-serif',
},
});
ReactDOM.render(
<ThemeProvider theme={theme}>
<CssBaseline />
<App />
</ThemeProvider>,
document.getElementById('root')
);
CssBaseline обеспечивает единообразное оформление по
умолчанию, нормализуя стили браузера.
MUI предоставляет большое количество готовых компонентов: кнопки,
карточки, таблицы, диалоги, навигационные элементы. Импортировать
компоненты следует напрямую из пакета @mui/material, что
оптимизирует сборку и размер бандла.
Пример использования кнопки и иконки:
import Button from '@mui/material/Button';
import DeleteIcon from '@mui/icons-material/Delete';
function MyButton() {
return (
<Button variant="contained" color="primary" startIcon={<DeleteIcon />}>
Удалить
</Button>
);
}
Рекомендуется придерживаться модульной структуры:
components/ — переиспользуемые компоненты
интерфейса.pages/ — страницы приложения.theme/ — кастомизация темы и палитры.utils/ — вспомогательные функции и хелперы.Такой подход облегчает поддержку кода и интеграцию новых функций.
Для строгой типизации рекомендуется создавать проект на TypeScript:
npx create-react-app my-app --template typescript
MUI полностью поддерживает TypeScript, предоставляя типы для всех компонентов и пропсов, что значительно повышает надёжность кода.
MUI использует систему сеток (Grid) и хелперы для
медиа-запросов (useMediaQuery). Уже на этапе настройки темы
можно определить брейкпоинты, чтобы все компоненты корректно реагировали
на изменение ширины экрана:
const theme = createTheme({
breakpoints: {
values: { xs: 0, sm: 600, md: 960, lg: 1280, xl: 1920 },
},
});
После установки и настройки рекомендуется проверить корректность интеграции:
Button и
Typography.Эти шаги обеспечивают полноценное рабочее окружение для разработки на базе MUI и позволяют без ошибок переходить к созданию сложных интерфейсов.