useResizeObserver

一个 React 钩子(Hook),用来利用 ResizeObserver API 观察元素大小的变化。

演示

用法

请查看 API。

源码

点击下方链接跳转 GitHub 查看源代码。

API

const { observerRef, isSupported, ...controls } = useResizeObserver(callback, options)

回调函数 Callback

ResizeObserverCallback 函数,当观察者被触发时将被调用。

选项 Options

export interface UseWebObserverOptions {
  /**
   * 在调用此函数后立即开始观察
   *
   * @defaultValue true
   */
  immediate?: boolean
}

interface ResizeObserverOptions {
  box?: ResizeObserverBoxOptions
}

export interface UseResizeObserverOptions extends UseWebObserverOptions, ResizeObserverOptions {
  /** @defaultValue 'content-box' */
  box?: ResizeObserverBoxOptions
}

返回值

返回值中包含可暂停、恢复的 Pausable 实例。

更多详情,请参见 Pausable

export type UseWebObserverReturns<Observer> = Pausable & {
  /**
   * 保存观察者实例的 ref
   */
  observerRef: React.MutableRefObject<Observer | null>
  /**
   * 检查当前环境是否支持观察者
   */
  isSupported: boolean
}

export interface UseResizeObserverReturns extends Pausable, UseWebObserverReturns<ResizeObserver> {}