首頁 > web前端 > js教程 > 當瀏覽器視窗大小調整時,如何在 React 中重新渲染視圖?

當瀏覽器視窗大小調整時,如何在 React 中重新渲染視圖?

Barbara Streisand
發布: 2024-10-19 19:38:29
原創
1103 人瀏覽過

How to Rerender View in React When Browser Window Resizes?

使用React 在瀏覽器調整大小時重新渲染視圖

在React 中,可以在調整瀏覽器視窗大小時自動更新視圖,提供響應式使用者體驗。

視窗調整大小偵測

新增 jQuery 的視窗調整大小偵聽器是偵測視窗調整大小的簡單方法。然而,React 提供了一些更多 React 特有的方法:

React Hooks

React Hooks 提供了一種聲明性方式來添加視窗調整大小處理。 useWindowSize Hook 可以定義如下:

<code class="javascript">import React, { useLayoutEffect, useState } from 'react';

function useWindowSize() {
  const [size, setSize] = useState([0, 0]);
  useLayoutEffect(() => {
    const updateSize = () => setSize([window.innerWidth, window.innerHeight]);
    window.addEventListener('resize', updateSize);
    updateSize();
    return () => window.removeEventListener('resize', updateSize);
  }, []);
  return size;
}</code>
登入後複製

React 類別元件

對於類別元件,可以使用生命週期方法 componentDidMount 開始監聽視窗大小調整事件。以下程式碼示範了這一點:

<code class="javascript">import React from 'react';

class ShowWindowDimensions extends React.Component {
  state = { width: 0, height: 0 };

  updateDimensions = () => {
    this.setState({ width: window.innerWidth, height: window.innerHeight });
  };

  componentDidMount() {
    window.addEventListener('resize', this.updateDimensions);
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this.updateDimensions);
  }

  render() {
    return <span>Window size: {this.state.width} x {this.state.height}</span>;
  }
}</code>
登入後複製

透過將視窗調整大小偵測合併到 React 應用程式中,您可以確保您的 UI 保持響應並無縫適應不同的螢幕尺寸。

以上是當瀏覽器視窗大小調整時,如何在 React 中重新渲染視圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板