Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie rendere ich die React-Ansicht bei der Größenänderung des Browsers neu: jQuery vs. React-Centric-Ansatz?

Mary-Kate Olsen
Freigeben: 2024-10-19 19:37:01
Original
817 Leute haben es durchsucht

How to Re-render React View on Browser Resize: jQuery vs React-Centric Approach?

Erneutes Rendern der Ansicht bei Browser-Größenänderung mit React

In der gegebenen React-Anwendung besteht das Ziel darin, die Ansicht neu zu rendern, wenn Die Größe des Browserfensters wird geändert. Dies ermöglicht die dynamische Anpassung von UI-Elementen, wie z. B. die Positionierung von Blöcken in einem Pinterest-ähnlichen Layout.

Verwenden der Window Resize Library:

Ein gängiger Ansatz ist: Verwenden Sie das Fenstergrößenänderungsereignis von jQuery, wie in der Frage vorgeschlagen. Durch Hinzufügen des folgenden Codes können Sie die Komponente bei jeder Größenänderung des Fensters neu rendern:

$( window ).resize(function() {
  // Re-render the component
});
Nach dem Login kopieren

React-Centric Approach:

Es gibt jedoch einen Mehr „React“-Ansatz, um dies mit dem useEffect Hook zu erreichen. Mit diesem Hook können Sie Nebeneffekte in einer Komponente ausführen, z. B. das Abhören von Fensterereignissen. Um useEffect für die Fenstergröße zu verwenden, können Sie einen benutzerdefinierten Hook wie folgt definieren:

import React, { useState, useEffect } from 'react';

function useWindowSize() {
  const [size, setSize] = useState([0, 0]);
  useEffect(() => {
    function updateSize() {
      setSize([window.innerWidth, window.innerHeight]);
    }
    window.addEventListener('resize', updateSize);
    updateSize();
    return () => window.removeEventListener('resize', updateSize);
  }, []);
  return size;
}
Nach dem Login kopieren

Sie können diesen Hook dann in Ihrer Komponente verwenden, um auf die Fenstergröße zuzugreifen und bei jeder Änderung ein erneutes Rendern auszulösen:

import React, { useState, useEffect } from 'react';
import { useWindowSize } from './useWindowSize';

function MyApp() {
  // ...
  const [windowSize, setWindowSize] = useWindowSize();

  useEffect(() => {
    // Re-render the component when the window size changes
    setWindowSize(useWindowSize());
  }, [windowSize]);

  return (
    // ...
  );
}
Nach dem Login kopieren

Dieser Ansatz ist stärker gekapselt und folgt den Lebenszyklusmustern von React, sodass der Code Ihrer Komponente sauber und wartbar bleibt.

Das obige ist der detaillierte Inhalt vonWie rendere ich die React-Ansicht bei der Größenänderung des Browsers neu: jQuery vs. React-Centric-Ansatz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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