Чек-лист первичной конфигурации React
Установка React глобально
sudo npm i -g react --force
Создание проекта в текущей директории
npx create-react-app .
Создание проекта в новой папке
npx create-react-app my_project
для просмотра в браузере выполнить команду
npm run dev
npm run start
забилдить
npm run build
готовый проект для публикации располагается в папке: build
указать порт для npm start:
открыть файл package.json на редактирование, изменить параметр scripts.start на:
...
"scripts": {
"start": "PORT=3001 react-scripts start",
...
Tailwind CSS
Документация по Tailwind: https://tailwindcss.com/docs/
установка
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Открыть файл tailwind.config.js и в content добавить «./src/**/*.{js,jsx,ts,tsx}», пример:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./src/**/*.{js,jsx,ts,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
В начало файла ./src/index.css добавить:
@tailwind base;
@tailwind components;
@tailwind utilities;
Bootstrap
Документация по компонентам: https://react-bootstrap.github.io/components/alerts/
установка
npm install react-bootstrap bootstrap
подключение стилей к App.js
import 'bootstrap/dist/css/bootstrap.min.css';
примеры подключения компонентов
import Button from 'react-bootstrap/Button';
// or less ideally
import { Button } from 'react-bootstrap';
import Dropdown from 'react-bootstrap/Dropdown'
//...
<Dropdown>
<Dropdown.Toggle
variant='success'
id={'dropdown-' + row.id}
>
{<FontAwesomeIcon icon={faEllipsisVertical} />}
</Dropdown.Toggle>
<Dropdown.Menu>
<Dropdown.Item
onClick={() => props.setPage(<props.editPage
objId={row.id}
setPage={props.setPage}
/>)}
>
Изменить
</Dropdown.Item>
</Dropdown.Menu>
</Dropdown>
//...
Перейти с CSS на SCSS
установить модуль sass:
npm install sass
переименовать файл App.css в App.scss
изменить в файле App.js import ‘./App.css’; на import ‘./App.css’;
FontAwesome
поиск иконок: https://fontawesome.com/icons
установка пакета ядра:
npm i --save @fortawesome/fontawesome-svg-core
установка пакетов бесплатных иконок:
npm i --save @fortawesome/free-solid-svg-icons
npm i --save @fortawesome/free-regular-svg-icons
установка Font Awesome React Component
npm i --save @fortawesome/react-fontawesome@latest
импорт на примере иконок «fa-solid fa-warehouse» и «fa-solid fa-house»
import React from 'react'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faHouse, faWarehouse } from '@fortawesome/free-solid-svg-icons'
// ...
<div className="Lk-nav">
<div className='Lk-nav-logo'>
HoverHost
</div>
<ul>
<li className='hover:text-teal-300'>
<FontAwesomeIcon icon={faHouse} />
<span>Домены</span>
</li>
<li className='hover:text-teal-300'>
<FontAwesomeIcon icon={faWarehouse} />
<span>Хостинг</span>
</li>
</ul>
</div>
// ...
в результате: