Wstęp:
ReactJS, dzięki swojej architekturze opartej na komponentach, na nowo zdefiniował sposób, w jaki budujemy interfejsy użytkownika. Aby wzmocnić swoje projekty React, konieczne jest skorzystanie z ogromnego świata dostępnych bibliotek. W tym obszernym przewodniku przyjrzymy się 20 niezbędnym bibliotekom React, wraz z przykładami kodu i szczegółowymi objaśnieniami, które usprawnią Twoją podróż programistyczną.
1. React Router — uproszczenie Nawigacji
React Router oferuje przejrzysty sposób obsługi nawigacji i wyznaczania tras w aplikacjach React:
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'; function App() { return ( <Router> <nav> <Link to="/">Home</Link> <Link to="/about">About</Link> </nav> <Route path="/" exact component={Home} /> <Route path="/about" component={About} /> </Router> ); }
2. Axios — łatwe żądania HTTP
Axios upraszcza żądania HTTP, elegancko zarządzając obietnicami i błędami:
import axios from 'axios'; axios.get('/api/data') .then(response => { console.log(response.data); }) .catch(error => { console.error(error); });
3. Redux – Solidne zarządzanie stanem
Redux pomaga zarządzać złożonymi stanami aplikacji pomiędzy komponentami:
import { createStore } from 'redux'; import rootReducer from './reducers'; const store = createStore(rootReducer); // Access state const currentState = store.getState(); // Dispatch actions store.dispatch({ type: 'INCREMENT' });
4. React Query — proste pobieranie danych
React Query upraszcza pobieranie, buforowanie i synchronizację danych:
import { useQuery } from 'react-query'; function UserProfile() { const { data, isLoading, error } = useQuery('user', fetchUser); if (isLoading) return 'Loading...'; if (error) return 'An error occurred: ' + error.message; return <div>{data.name}</div>; }
5. Material-UI — eleganckie komponenty interfejsu użytkownika
Material-UI zapewnia wstępnie zaprojektowane komponenty zgodne z wytycznymi Material Design:
import { Button, TextField } from '@mui/material'; function LoginForm() { return ( <form> <TextField label="Username" /> <TextField type="password" label="Password" /> <Button variant="contained" color="primary">Login</Button> </form> ); }
Kontynuuj czytanie, aby odkryć więcej niezbędnych bibliotek React, które poprawią Twoje umiejętności programistyczne:
6. Formik – prosta obsługa formularzy
Formik upraszcza zarządzanie formularzami i ich sprawdzanie:
import { Formik, Form, Field, ErrorMessage } from 'formik'; function MyForm() { return ( <Formik initialValues={{ name: '', email: '' }} onSubmit={handleSubmit} > <Form> <Field type="text" name="name" /> <ErrorMessage name="name" component="div" /> <Field type="email" name="email" /> <ErrorMessage name="email" component="div" /> <button type="submit">Submit</button> </Form> </Formik> ); }
7. React Query (mutacje) – aktualizacja danych
React Query służy nie tylko do pobierania danych; obsługuje również mutacje danych:
import { useMutation, useQueryClient } from 'react-query'; function DeleteUserButton({ userId }) { const queryClient = useQueryClient(); const deleteUser = useMutation(deleteUserApi); const handleDelete = () => { deleteUser.mutate(userId, { onSuccess: () => { queryClient.invalidateQueries('users'); }, }); }; return ( <button onClick={handleDelete}>Delete User</button> ); }
8. React-DnD — przeciągnij i upuść dla React
React-DnD umożliwia funkcję przeciągania i upuszczania komponentów:
import { useDrag, useDrop } from 'react-dnd'; function DraggableItem({ id, text }) { const [{ isDragging }, ref] = useDrag({ type: 'ITEM', item: { id }, }); return ( <div ref={ref} style={{ opacity: isDragging ? 0.5 : 1 }}> {text} </div> ); }
9. React Beautiful DND — zmiana kolejności list
React Beautiful DND upraszcza tworzenie list z możliwością sortowania:
import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd'; function ReorderList({ items }) { return ( <DragDropContext onDragEnd={handleDragEnd}> <Droppable droppableId="items"> {(provided) => ( <ul {...provided.droppableProps} ref={provided.innerRef}> {items.map((item, index) => ( <Draggable key={item.id} draggableId={item.id} index={index}> {(provided) => ( <li ref={provided.innerRef} {...provided.draggableProps} {...provided.dragHandleProps} > {item.content} </li> )} </Draggable> ))} </ul> )} </Droppable> </DragDropContext> ); }
10. React Helmet — optymalizacja SEO
React Helmet upraszcza zarządzanie tagami head na potrzeby SEO:
import { Helmet } from 'react-helmet'; function MyComponent() { return ( <> <Helmet> <title>Page Title</title> <meta name="description" content="Page description" /> </Helmet> {/* Your content */} </> ); }
Bądź na bieżąco, gdy w nadchodzących sekcjach będziemy zagłębiać się w kolejne 10 bibliotek. Każda z tych bibliotek jest cennym dodatkiem do zestawu narzędzi React, dostosowanym do konkretnych potrzeb programistycznych. Miłego kodowania!