Maison > interface Web > js tutoriel > le corps du texte

Comment restituer la vue lors du redimensionnement du navigateur dans React : jQuery vs React Hooks and Classes ?

Barbara Streisand
Libérer: 2024-10-19 19:33:30
original
440 Les gens l'ont consulté

How to Re-render View on Browser Resize in React: jQuery vs. React Hooks and Classes?

Rendu la vue lors du redimensionnement du navigateur avec React

Arrière-plan

En utilisant React, vous pouvez ajuster dynamiquement la disposition des éléments sur une page Web en fonction du navigateur taille de la fenêtre. Cependant, vous pouvez rencontrer des problèmes lorsque la fenêtre est redimensionnée et que la vue ne se met pas automatiquement à jour. Cet article répond à une question courante : comment déclencher un nouveau rendu lorsque la fenêtre du navigateur est redimensionnée.

Code

Considérez l'application React suivante avec une hiérarchie de composants composée d'un composant MyApp, d'un Composant Block représentant des blocs individuels sur la page et un composant Blocks représentant une collection de blocs :

Question

Au lieu d'utiliser l'événement de redimensionnement de fenêtre de jQuery, existe-t-il une manière plus "React" d'écouter pour les événements de redimensionnement du navigateur et déclencher le nouveau rendu ?

Réponse

Utiliser les React Hooks

Les React Hooks offrent une approche plus propre et plus fonctionnelle. Vous pouvez créer un Hook personnalisé qui écoute l'événement de redimensionnement de la fenêtre :

<code class="javascript">function useWindowSize() {
  const [size, setSize] = useState([0, 0]);
  useLayoutEffect(() => {
    function updateSize() {
      setSize([window.innerWidth, window.innerHeight]);
    }
    window.addEventListener('resize', updateSize);
    updateSize();
    return () => window.removeEventListener('resize', updateSize);
  }, []);
  return size;
}</code>
Copier après la connexion

Utilisation des classes React

Dans les classes React, vous pouvez écouter les événements de redimensionnement dans la méthode de cycle de vie composantDidMount :

<code class="javascript">componentDidMount() {
  window.addEventListener('resize', this.updateDimensions);
}
componentWillUnmount() {
  window.removeEventListener('resize', this.updateDimensions);
}</code>
Copier après la connexion

Cette approche est plus verbeuse mais fournit toujours une implémentation propre.

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!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!