Руководство по настройке Material UI с помощью React
Это статья вам подойдет, если вам интересно узнать о Material UI (MUI) , но вы не знаете, с чего начать, и ищете краткое руководство по настройке компонентов MUI с помощью React.
Что такое Material UI?
Популярная библиотека пользовательского интерфейса, которая позволяет разработчикам повторно использовать хорошо продуманные компоненты из Material Design , передовой системы проектирования для интерфейсной разработки. MUI хорошо взаимодействует с React и предоставляет интерактивные компоненты для разработки адаптивных пользовательских интерфейсов.
MUI имеет отличную документацию
Документация по Material UI предоставляет массу информации о нескольких компонентах: от простой кнопки до навигационных меню, вкладок, таблиц, ползунков и т. д. Вы называете это, и в Material UI есть компонент, который соответствует вашим потребностям. Документация по API компонента MUI содержит подробную информацию о свойствах каждого компонента, описание свойства со значениями по умолчанию, правила CSS, демонстрации и примеры кода.
Быстрое начало работы с React и Material UI
1. Давайте сначала настроим React. Если у вас уже есть готовый и ожидающий проект React, вы можете перейти к разделу «Использование компонентов MUI». Если нет, создайте в терминале новую папку с помощью команд git: mkdir и того, что вы хотите, чтобы папка вашего приложения называлась. Давайте назовем: Material-UI-App
mkdir material-ui-app
2- Откройте свой проект в VScode или любой другой локальной среде разработки, которую вы используете. В терминале LDE вы можете быстро запустить новый проект с помощью команды git:
npx create-react app
3- Запустите сервер разработки с помощью
npm start
4- Затем соедините приложение в статические файлы для производства с помощью
npm run build
React — это статья (несколько статей) для другого раза. На данный момент мы собираемся использовать его прямо из коробки и перейдем к установке того, что нам нужно, чтобы начать использовать компоненты Material UI.
Использование компонентов MUI
Первый шаг: давайте добавим библиотеку Material UI в качестве зависимости к нашему проекту React, и это предоставит нам все необходимое для начала импорта компонентов. В вашем терминале LDE введите:
npm i —save @material-ui/core
Давайте перейдем к вашему файлу App.js и убедимся, что ваш исходный файл выглядит примерно так:
import React from 'react'; import './App.css'; function App() { return ( <div className="App"></div> ); } export default App;
Мы собираемся начать с основ, наш файл App.js. Давайте импортируем компонент Typography Нам нужно будет импортировать деструктурированный компонент непосредственно из библиотеки MUI и добавить <Typography>
теги прямо в наше приложение <div>
. Подробнее читайте в документации по Typography API . Как вы, наверное, догадались, позже мы добавим компонент переключателя, поэтому я напишу «Вот наш переключатель» в качестве текста между <Typography>
теги компонентов.
import React from 'react'; import { Typography } from '@material-ui/core'; import './App.css'; function App() { }; return ( <div className="App"> <Typography> Here's Our Switch </Typography> </div> ); } export default App;
Давайте настроим наш тип:
Мы собираемся использовать встроенные свойства MUI: выравнивание (align), цвет (color) и вариант (variant).
align
это свойство имеет значения типа: «left», «center», «right» и «justify».
variant
этот props использует значения типов стандартных тегов HTML: от h1 до h6, body1, caption и т. д.
color
этот props имеет значения ‘inherit’, ‘primary’, secondary’ и т. д.
Цвет каждого компонента поддерживается темами MUI. Каждый цветовой props по умолчанию автоматически адаптируется для каждого компонента.
В нашем примере мы будем использовать: align="center" color="primary" variant="h2"
, но вы можете свободно выбирать значения, которые вам больше всего нравятся.
import React from 'react'; import { Typography } from '@material-ui/core'; import './App.css'; function App() { return ( <div className="App"> <Typography align="center" color="primary" variant="h2"> Here's Our Switch </Typography> </div> ); } export default App;
Вы можете спросить... Откуда берется цвет? И могу ли я его изменить? Это подводит нас к самому интересному. Темы!
Темы MUI
По теме каждого компонента имеется много отличной документации.
Темы настраиваются. Мы бы рекомендовали углубиться в объект темы по умолчанию. Найдено здесь: https://v4.mui.com/customization/default-theme/#default-theme ,
Отсюда берутся все наши значения по умолчанию, и именно так мы получим доступ к каждому свойству, которое собираемся настроить. Тема по умолчанию создана для того, чтобы помочь нам поддерживать единообразие всех стилей — это лучшая практика пользовательского интерфейса.
Давайте создадим нашу собственную тему:
Вам понадобится создать новый js-файл с именем theme.js . С объектом темы можно многое сделать, но для простоты мы сосредоточимся на настройке основных и дополнительных цветов.
Мы добавили собственные HEX-коды к основному и дополнительному объекту. Не стесняйтесь выбирать свои собственные цвета. Если вы не уверены в выборе цветовой палитры, Coolors.co — отличное место, где можно найти идеи и отличные цветовые комбинации.
Ниже приведен пример нашего файла theme.js.
import { createTheme } from '@material-ui/core/styles'; const theme = createTheme({ palette: { primary: { light: '#b4d6e4', main: '#09BC8A', dark: '#004346', contrastText: '#fff', }, secondary: { light: '#ff7961', main: '#f44336', dark: '#ba000d', contrastText: '#000', }, }, }); export default theme;
В наш index.js нам нужно импортировать ThemeProvider и наш файл theme.js следующим образом:
import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import { ThemeProvider } from '@material-ui/core'; import theme from './theme' const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <React.StrictMode> <ThemeProvider theme={theme}> <App /> </ThemeProvider> </React.StrictMode> );
Хорошо, вернемся к App.js. файлу Давайте добавим компонент переключателя просто для развлечения. Опять же, просто вернитесь к параметрам компонента MUI. Выберите тип переключателя, который вы хотите добавить в свое приложение React. Используйте их код компонента и вуаля. Как видите, ваш переключатель также унаследует пользовательскую тему/цвет, которые мы создали ранее.
import React from 'react'; import Switch from '@material-ui/core/Switch'; import { Typography } from '@material-ui/core'; import './App.css'; function App() { const [state, setState] = React.useState({ checkedA: true, checkedB: true, }); const handleChange = (event) => { setState({ ...state, [event.target.name]: event.target.checked }); }; return ( <div className="App"> <Typography align="center" color="primary" variant="h2"> Here's Our Switch </Typography> <Switch checked={state.checkedB} onChange={handleChange} color="primary" name="checkedB" inputProps={{ 'aria-label': 'primary checkbox' }} /> </div> ); } export default App;
И вот наш тип и переключатель.
В заключение
Вот и все, ваши первые настроенные компоненты пользовательского интерфейса Material. Спасибо за прочтение.