0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[React] ResizeObserver APIを使ってリサイズする

Last updated at Posted at 2021-11-10

とりあえず便利

便利なので是非とも使用してみてください。
使用方法は以下にコードを入れましたのでこのまま使ってもらっても良いですし、独自に実装されても良いかと思います。ご自由にどうぞ。

高さを調節するのに僕は使用しました。

以前まではresizeを使用しておりました。
もうそろそろ、やり方を変えてスマートな方法を採用したいと考えており調査しているとResizeObserverに出会いました。以前から知ってはいたのですがその時はまだ使用できる状況になかったのですが、今は整っている状況でもあったので採用しました。

コード自体のスッキリしているようですし、今度からResizeObserverを採用していこうと思います。

  import React, { useRef } from 'react'

  const useRef = useRef(null) // 変数名はユニークな名前に変えましょー

  useEffect(() => {
      const H = Headerの高さ
      useRef.current.style.height = window.innerHeight - H + 'px' // 念の為初めに付与させる

      const resizeObserver = new ResizeObserver(() => {
        if (useRef.current) {
          useRef.current.style.height = // リサイズされた時に付与し直す
            window.innerHeight - H + 'px'
        }
      })

      useRef.current && resizeObserver.observe(document.body)

      return (): void => {
        resizeObserver.disconnect()
      }
  }, [])

型を利用される場合、以下を実行ください。


% npm install --save-dev @types/resize-observer-browser

よかったら、ぜひ使ってみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?