Heim > Web-Frontend > js-Tutorial > Hauptteil

Grundlegende React-Tricks, die jeder Entwickler kennen muss

Mary-Kate Olsen
Freigeben: 2024-11-03 12:58:02
Original
943 Leute haben es durchsucht

React ist unglaublich leistungsfähig, aber um es zu beherrschen, muss man über die Grundlagen hinausgehen und einige weniger bekannte Tricks lernen, um die Entwicklung zu optimieren. Hier ist ein Überblick über meine persönlichen 20 Lieblings-React-Tricks, die Ihre Produktivität steigern und Ihnen helfen können, saubereren und effektiveren Code zu schreiben. Lassen Sie uns direkt in die Beispiele eintauchen!


1. Kurzschlussauswertung für bedingtes Rendering

Vermeiden Sie ausführliche if-Anweisungen für die bedingte Darstellung mit Kurzschlussauswertung.

{isLoading && <Spinner />}
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird der Nur wenn isLoading wahr ist, bleibt Ihr JSX sauber.


2. Dynamische Klassennamen mit Klassennamen-Bibliothek

Die Klassennamenbibliothek erleichtert die bedingte Anwendung von Klassen.

npm install classnames
Nach dem Login kopieren
Nach dem Login kopieren
import classNames from 'classnames';

const buttonClass = classNames({
  'btn': true,
  'btn-primary': isPrimary,
  'btn-secondary': !isPrimary,
});

<button className={buttonClass}>Click Me</button>
Nach dem Login kopieren
Nach dem Login kopieren

3. Aufwändige Berechnungen mit useMemo auswendig lernen

Wenn eine Berechnung kostspielig ist, merken Sie sie sich, damit React sie nicht unnötig neu berechnet.

const sortedData = useMemo(() => data.sort(), [data]);
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird sortiertData nur dann neu berechnet, wenn sich Daten ändern.


4. Eingaben mit useEffect entprellen

Vermeiden Sie ständige Neu-Renderings, indem Sie Eingabeänderungen entprellen.

const [value, setValue] = useState('');
const [debouncedValue, setDebouncedValue] = useState('');

useEffect(() => {
  const handler = setTimeout(() => setDebouncedValue(value), 500);
  return () => clearTimeout(handler);
}, [value]);

<input value={value} onChange={(e) => setValue(e.target.value)} />
Nach dem Login kopieren
Nach dem Login kopieren

5. Benutzerdefinierte Hooks für wiederverwendbare Logik

Kapseln Sie die Logik in einem benutzerdefinierten Hook, um sie komponentenübergreifend wiederzuverwenden.

function useFetch(url) {
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch(url).then(res => res.json()).then(setData);
  }, [url]);

  return data;
}

const Component = () => {
  const data = useFetch('/api/data');
  return <div>{data ? JSON.stringify(data) : 'Loading...'}</div>;
};
Nach dem Login kopieren
Nach dem Login kopieren

6. Lazy Loading Komponenten mit React.lazy

Optimieren Sie die Ladezeit, indem Sie Ihre Komponenten aufteilen.

const LazyComponent = React.lazy(() => import('./LazyComponent'));

function App() {
  return (
    <React.Suspense fallback={<div>Loading...</div>}>
      <LazyComponent />
    </React.Suspense>
  );
}
Nach dem Login kopieren
Nach dem Login kopieren

7. Zugriff auf frühere Requisiten oder Zustände mit useRef

Um auf frühere Zustandswerte zuzugreifen, verwenden Sie useRef.

const [count, setCount] = useState(0);
const prevCount = useRef(count);

useEffect(() => {
  prevCount.current = count;
}, [count]);

console.log(`Previous: ${prevCount.current}, Current: ${count}`);
Nach dem Login kopieren
Nach dem Login kopieren

8. Vermeiden Sie erneute Renderings, indem Sie Funktionen an useCallback übergeben

Wenn eine Funktion nicht geändert werden muss, merken Sie sie sich mit useCallback.

const increment = useCallback(() => setCount(count + 1), [count]);
Nach dem Login kopieren
Nach dem Login kopieren

9. Destrukturierende Requisiten für saubereren Code

Requisiten direkt in den Funktionsparametern zerstören.

const User = ({ name, age }) => (
  <div>{name} is {age} years old</div>
);
Nach dem Login kopieren
Nach dem Login kopieren

10. React.Fragment zum Gruppieren von Elementen ohne zusätzliche Divs

Elemente umschließen, ohne einen zusätzlichen DOM-Knoten hinzuzufügen.

<>
  <p>Paragraph 1</p>
  <p>Paragraph 2</p>
</>
Nach dem Login kopieren

11. Fehlergrenzen zum Abfangen von JavaScript-Fehlern

Fehler in untergeordneten Komponenten abfangen, um zu verhindern, dass die gesamte App abstürzt.

class ErrorBoundary extends React.Component {
  state = { hasError: false };

  static getDerivedStateFromError() {
    return { hasError: true };
  }

  render() {
    if (this.state.hasError) return <h1>Something went wrong.</h1>;
    return this.props.children;
  }
}
Nach dem Login kopieren

Essential React Tricks Every Developer Must Know

Jagroop2001 (Jagroop) · GitHub

?‍? Full-Stack-Entwickler | ? Entwickler für maschinelles Lernen | ? Dev Relations Pro – ? Zur Miete verfügbar – Jagroop2001

Essential React Tricks Every Developer Must Know github.com

12. PropTypes für die Prop-Validierung verwenden

Erkennen Sie Fehler frühzeitig, indem Sie Requisitentypen definieren.

{isLoading && <Spinner />}
Nach dem Login kopieren
Nach dem Login kopieren

13. State Reducers mit useReducer

Für komplexe Zustandslogik kann useReducer effizienter sein.

npm install classnames
Nach dem Login kopieren
Nach dem Login kopieren

14. LayoutEffect für DOM-Manipulationen verwenden

Führen Sie Effekte nach DOM-Updates, aber vor dem Malen aus.

import classNames from 'classnames';

const buttonClass = classNames({
  'btn': true,
  'btn-primary': isPrimary,
  'btn-secondary': !isPrimary,
});

<button className={buttonClass}>Click Me</button>
Nach dem Login kopieren
Nach dem Login kopieren

15. Zustandslogik mit Kontext und useContext kapseln

Erstellen Sie einen globalen Zustand ohne Bohren von Propellern.

const sortedData = useMemo(() => data.sort(), [data]);
Nach dem Login kopieren
Nach dem Login kopieren

16. Vermeiden Sie Inline-Funktionsdefinitionen in JSX

Das Definieren von Funktionen inline führt zu einem erneuten Rendern. Definieren Sie sie stattdessen außerhalb.

const [value, setValue] = useState('');
const [debouncedValue, setDebouncedValue] = useState('');

useEffect(() => {
  const handler = setTimeout(() => setDebouncedValue(value), 500);
  return () => clearTimeout(handler);
}, [value]);

<input value={value} onChange={(e) => setValue(e.target.value)} />
Nach dem Login kopieren
Nach dem Login kopieren

17. Verwenden Sie optionale Verkettung in JSX für sicheren Zugriff auf Eigenschaften

Null- oder undefinierte Werte ordnungsgemäß behandeln.

function useFetch(url) {
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch(url).then(res => res.json()).then(setData);
  }, [url]);

  return data;
}

const Component = () => {
  const data = useFetch('/api/data');
  return <div>{data ? JSON.stringify(data) : 'Loading...'}</div>;
};
Nach dem Login kopieren
Nach dem Login kopieren

18. Verwenden Sie die Schlüsselstütze, um Probleme beim erneuten Rendern zu vermeiden

Verwenden Sie beim Rendern von Listen immer eindeutige Schlüssel.

const LazyComponent = React.lazy(() => import('./LazyComponent'));

function App() {
  return (
    <React.Suspense fallback={<div>Loading...</div>}>
      <LazyComponent />
    </React.Suspense>
  );
}
Nach dem Login kopieren
Nach dem Login kopieren

19. Exportieren Sie Komponenten mit benannten Exporten für eine bessere Importkontrolle

Benannte Exporte erleichtern den Import bestimmter Komponenten.

const [count, setCount] = useState(0);
const prevCount = useRef(count);

useEffect(() => {
  prevCount.current = count;
}, [count]);

console.log(`Previous: ${prevCount.current}, Current: ${count}`);
Nach dem Login kopieren
Nach dem Login kopieren

Dann nach Bedarf importieren:

const increment = useCallback(() => setCount(count + 1), [count]);
Nach dem Login kopieren
Nach dem Login kopieren

20. Wiederverwendbare Komponentenmuster: Komponenten höherer Ordnung (HOCs)

Umschließen Sie Komponenten mit HOCs, um zusätzliche Logik hinzuzufügen.

const User = ({ name, age }) => (
  <div>{name} is {age} years old</div>
);
Nach dem Login kopieren
Nach dem Login kopieren

Wenn Sie diese Tricks beherrschen, können Sie prägnanteren, lesbareren und effizienteren React-Code schreiben! Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonGrundlegende React-Tricks, die jeder Entwickler kennen muss. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage