Reactで画像のLazyLoad
目的
ReactでSeoのために画像をスクロールに沿って遅延読み込みしたい.
実装
ライブラリ : React Lazy Load Image Componentを使いました.
特筆事項
- SSR(Server Side Rendering)にも対応.
- デフォルトでもちゃんとLazyLoadしてくれる.
- props- afterload,- beforeload:読み込み前後のcallbackを指定できる.
- effect:(string) blurなどの表示のスタイルを変更できる.
- threshold: (number) で読み込み始める域値(画像の画面に見えている部分の長さ)を指定できる(pixel指定).
 
- 詳しくはライブラリのページ
使い方
インストール
$ yarn add react-lazy-load-image-component
使用例
- <img />と同じ- propsを渡せる.
- その他propsで読み込み方を調整.
import React from 'react';
import { LazyLoadImage } from 'react-lazy-load-image-component';
const SomeConponent = () => (
  <div>
    ...
    <LazyLoadImage
    // <img />のpropsと同様
      height={height}
      src={src}
      width={width}
      // その他props
      afterload={() => console.log('loaded!')}
      delayTime={300}
      threshold={100}
    />
    ...
  </div>
);
export default SomeConponent;
