React a considérablement évolué depuis sa création et avec l'essor des Hooks, les composants fonctionnels sont devenus l'approche incontournable pour créer des applications React. Cette aide-mémoire fournit un aperçu des concepts clés, des fonctionnalités et des meilleures pratiques pour l'utilisation des composants fonctionnels dans React.
Un composant fonctionnel est une fonction JavaScript simple qui renvoie un élément React.
const MyComponent = () => { returnHello, World!; };
JSX est une extension de syntaxe qui vous permet d'écrire du code de type HTML dans votre JavaScript.
const MyComponent = () => { return (); };Welcome to React
Les accessoires sont utilisés pour transmettre des données d'un composant parent à un composant enfant.
const Greeting = ({ name }) => { returnHello, {name}!
; }; // Usage
Vous pouvez définir des accessoires par défaut pour un composant.
const Greeting = ({ name = "Guest" }) => { returnHello, {name}!
; };
Le hook useState vous permet d'ajouter un état aux composants fonctionnels.
import { useState } from 'react'; const Counter = () => { const [count, setCount] = useState(0); return (); };Count: {count}
Le useEffect Hook vous permet d'effectuer des effets secondaires dans les composants fonctionnels.
import { useEffect } from 'react'; const DataFetcher = () => { useEffect(() => { fetch('/api/data') .then(response => response.json()) .then(data => console.log(data)); }, []); // Empty dependency array means it runs once returnData fetched. Check console.; };
Rendu différents éléments de l'interface utilisateur en fonction de certaines conditions.
const LoginMessage = ({ isLoggedIn }) => { return ({isLoggedIn ?); };Welcome back!
:Please log in.
}
Rendez des listes de données et utilisez des clés pour aider React à identifier les éléments qui ont changé.
const ItemList = ({ items }) => { return (
Gérer les événements dans les composants fonctionnels.
const Button = () => { const handleClick = () => { alert('Button clicked!'); }; return ; };
Gérez la saisie du formulaire avec des composants contrôlés.
const Form = () => { const [value, setValue] = useState(''); const handleChange = (e) => { setValue(e.target.value); }; const handleSubmit = (e) => { e.preventDefault(); alert(`Submitted value: ${value}`); }; return (); };
Utilisez l'API Context pour la gestion de l'état dans l'arborescence des composants.
import { createContext, useContext } from 'react'; const MyContext = createContext(); const MyProvider = ({ children }) => { const value = 'Hello from context'; return ({children} ); }; const MyComponent = () => { const contextValue = useContext(MyContext); return{contextValue}; };
Créez une logique réutilisable avec des hooks personnalisés.
import { useState, useEffect } from 'react'; const useFetch = (url) => { const [data, setData] = useState(null); useEffect(() => { fetch(url) .then(response => response.json()) .then(data => setData(data)); }, [url]); return data; }; // Usage const DataComponent = () => { const data = useFetch('/api/data'); return{data ? JSON.stringify(data) : 'Loading...'}; };
Optimisez les performances en mémorisant des calculs coûteux.
import { useMemo } from 'react'; const ExpensiveComponent = ({ number }) => { const expensiveCalculation = useMemo(() => { // Assume this is a computationally expensive operation return number * 2; }, [number]); return{expensiveCalculation}; };
Utilisez useCallback pour mémoriser les fonctions afin d'éviter de nouveaux rendus inutiles.
import { useCallback } from 'react'; const Button = ({ onClick }) => { return ; }; const ParentComponent = () => { const handleClick = useCallback(() => { console.log('Button clicked'); }, []); return ; };
Gérez la logique d'état complexe avec le useReducer Hook.
import { useReducer } from 'react'; const reducer = (state, action) => { switch (action.type) { case 'increment': return { count: state.count + 1 }; case 'decrement': return { count: state.count - 1 }; default: throw new Error(); } }; const Counter = () => { const [state, dispatch] = useReducer(reducer, { count: 0 }); return (); };Count: {state.count}
Utilisez des fragments pour regrouper plusieurs éléments sans ajouter de nœuds supplémentaires au DOM.
const MyComponent = () => { return ( <>Title
Description
> ); };
Rendu les enfants dans un nœud DOM en dehors de la hiérarchie DOM du composant parent.
import { createPortal } from 'react-dom'; const Modal = ({ children }) => { return createPortal({children}, document.getElementById('modal-root') ); };
Utilisez les composants de classe pour les limites d'erreur.
import { Component } from 'react'; class ErrorBoundary extends Component { constructor(props) { super(props); this.state = { hasError: false }; } static getDerivedStateFromError(error) { return { hasError: true }; } componentDidCatch(error, errorInfo) { console.log(error, errorInfo); } render() { if (this.state.hasError) { returnSomething went wrong.
; } return this.props.children; } } // Usage
Importez dynamiquement des composants pour réduire le temps de chargement initial.
import { lazy, Suspense } from 'react'; const LazyComponent = lazy(() => import('./LazyComponent')); const App = () => { return (Loading...
Utilisez des types d'accessoires pour documenter et appliquer les types d'accessoires de composants.
import PropTypes from 'prop-types'; const Greeting = ({ name }) => { returnHello, {name}!
; }; Greeting.propTypes = { name: PropTypes.string.isRequired, };
Les composants fonctionnels offrent un moyen propre et simple de créer des applications React, en particulier grâce aux puissantes fonctionnalités introduites par Hooks. Cette aide-mémoire fournit une référence rapide aux concepts essentiels, vous aidant à rédiger du code React efficace et efficient.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!