ホームページ > 記事 > ウェブフロントエンド > React で Intersection Observer を使用する方法
今日は、React で交差点オブザーバー API を使用する方法をいくつかの例とともに検討します。
Mozilla の Web ドキュメントでは、交差点オブザーバー API について次のように説明されています。
コードは、監視する要素が別の要素 (またはビューポート) に出入りするとき、または 2 つの要素の交差値が要求された量だけ変化するときに実行されるコールバック関数を登録できます。このようにして、サイトはこの種の要素の交差を観察するためにメインスレッドで何もする必要がなくなり、ブラウザは必要に応じて交差管理を自由に最適化できるようになります。
つまり、特定の要素がビューポートに表示されるタイミングを検出できます。これは、要素が目的の交差比率を満たしている場合にのみ発生します。
ご覧のとおり、ページを下にスクロールすると交差比率が予想される制限に達するまで増加し、その時点でコールバックを実行する関数がトリガーされます。
const observer = new IntersectionObserver(callbackFunction, options) observer.observer(elementToObserver)
交差点オブザーバー コンストラクター オブジェクトには 2 つの引数が必要です:
これで、アクションを確認する準備が整いました。しかし、まず、各オプションの意味を知る必要があります。オプション引数は、次の値を持つオブジェクトです。
const options = { root: null, rootMargin: "0px", threshold: 1 }
次に、React での交差点オブザーバー API の実装を見ていきます。
const observer = new IntersectionObserver(callbackFunction, options) observer.observer(elementToObserver)
const options = { root: null, rootMargin: "0px", threshold: 1 }
これは単なる基本的な実装であり、これを行うにはいくつかの方法があることに注意してください。
ここで、以前と同じコードを実装しますが、すべてのロジックを useElementOnScreen という nu フックで分離します。
const containerRef = useRef(null) const [isVisible, setIsVisible] = useState(false) const callbackFunction = (entries) => { const [entry] = entries setIsVisible(entry.isIntersecting) } const options = { root: null, rootMargin: "0px", threshold: 1.0 } useEffect(() => { const observer = new IntersectionObserver(callbackFunction, options) if (containerRef.current) observer.observe(containerRef.current) return () => { if (containerRef.current) observer.unobserve(containerRef.current) } }, [containerRef, options]) return ( <div className="app"> <div className="isVisible">{isVisible ? "IN VIEWPORT" : "NOT IN VIEWPORT"}</div> <div className="section"></div> <div className="box" ref={containerRef}>Observe me</div> </div> )
<div className="box" ref={containerRef}>Observe me</div>
1- 新しく作成したフックをコンポーネントにインポートします。
2 - オプション オブジェクトを使用して初期化します。
3 - これで終了です。
おめでとうございます。交差点オブザーバー API が正常に使用され、そのフックも作成されました。
React を使用した Intersection Observer、もともとプロダクトハッカーによって作成されました
この記事をお読みいただきありがとうございます。何か有益な情報を提供できれば幸いです。もしそうなら、この投稿を推薦して♥ボタンをクリックして、より多くの人に見てもらえるととても嬉しいです
以上がReact で Intersection Observer を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。