Вот статья в блоге, в которой объясняется, как создать повторно используемый компонент React TypeScript для боковой панели с помощью Tailwind CSS и Headless UI.
Привет! Сегодня мы углубимся в создание многократно используемого компонента боковой панели с использованием React, TypeScript, Tailwind CSS и Headless UI. Боковые панели — это распространенный элемент пользовательского интерфейса в веб-приложениях, и наличие компонента многократного использования может сэкономить нам время и усилия в будущих проектах. Итак, начнём!
Во-первых, убедитесь, что в вашем проекте настроены React, TypeScript и Tailwind CSS. Если вы используете приложение Create React, вы можете создать новый проект с поддержкой TypeScript, выполнив следующую команду:
npx create-react-app my-app --template typescript
Далее установим необходимые зависимости. Откройте каталог проекта в терминале и выполните следующую команду:
npm install @headlessui/react
Теперь давайте создадим файл компонента боковой панели Sidebar.tsx и начнем создавать многоразовую боковую панель.
import React from 'react';
import { Transition } from '@headlessui/react';
type SidebarProps = {
isOpen: boolean;
onClose: () => void;
};
const Sidebar: React.FC<SidebarProps> = ({ isOpen, onClose }) => {
return (
<Transition
show={isOpen}
enter="transition-opacity duration-300"
enterFrom="opacity-0"
enterTo="opacity-100"
leave="transition-opacity duration-300"
leaveFrom="opacity-100"
leaveTo="opacity-0"
>
<div className="fixed inset-0 flex items-center justify-center z-50 bg-gray-900 bg-opacity-50">
<div className="w-64 bg-white rounded-lg shadow-xl">
{/* Sidebar content goes here */}
<button className="absolute top-2 right-2" onClick={onClose}>
<svg
xmlns="http://www.w3.org/2000/svg"
className="h-6 w-6 text-gray-600 hover:text-gray-800"
fill="none"
viewBox="0 0 24 24"
stroke="currentColor"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth={2}
d="M6 18L18 6M6 6l12 12"
/>
</svg>
</button>
</div>
</div>
</Transition>
);
};
export default Sidebar;
В приведенном выше коде мы определяем компонент Sidebar, который принимает два реквизита: isOpenи onClose. Свойство isOpenопределяет, видна ли боковая панель или нет, а свойство onClose — это функция обратного вызова для закрытия боковой панели.
Мы используем компонент Transitionиз Headless UI, чтобы добавить плавную анимацию открытия и закрытия нашей боковой панели. Содержимое боковой панели можно добавить внутри элемента <div className="w-64 bg-white rounded-lg shadow-xl">. В этом примере мы также включаем кнопку закрытия, которая запускает обратный вызов onCloseпри нажатии.
Чтобы использовать компонент «Боковая панель» в своем приложении, просто импортируйте его и при необходимости включите в иерархию компонентов:
import React, { useState } from 'react';
import Sidebar from './Sidebar';
const App: React.FC = () => {
const [isSidebarOpen, setSidebarOpen] = useState(false);
const toggleSidebar = () => {
setSidebarOpen(!isSidebarOpen);
};
return (
<div>
<button onClick={toggleSidebar}>Toggle Sidebar</button>
<Sidebar isOpen={isSidebarOpen} onClose={toggleSidebar} />
{/* Other content of your application */}
</div>
);
};
export default App;
В приведенном выше коде мы используем хук useStateдля управления состоянием isSidebarOpen. Функция toggleSidebarобновляет состояние при нажатии кнопки переключения. Затем компонент боковой панели отображается с помощью свойства isOpen, для которого установлено значение состояния, и свойства onClose, для которого установлено значение функции переключения.
И все! Теперь у вас есть повторно используемый компонент боковой панели, созданный с помощью React, TypeScript, Tailwind CSS и Headless UI. Не стесняйтесь настраивать компонент и добавлять дополнительные функции в соответствии с требованиями вашего проекта.
Надеюсь, эта статья поможет вам в создании многократно используемых компонентов боковой панели для ваших проектов React. Приятного кодирования!
В этой статье мы узнали, как создать повторно используемый компонент боковой панели с помощью React, TypeScript, Tailwind CSS и Headless UI. Следуя инструкциям, описанным в этой статье, вы сможете легко создать и интегрировать компонент боковой панели в свои проекты. Это сэкономит вам время и силы при решении будущих задач разработки. Не забудьте настроить компонент в соответствии с требованиями вашего конкретного проекта. Приятного кодирования!