ホームページ >ウェブフロントエンド >jsチュートリアル >React/JSX コンポーネントにスクリプトタグを効率的に追加するにはどうすればよいですか?

React/JSX コンポーネントにスクリプトタグを効率的に追加するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-09 04:48:101026ブラウズ

How to Efficiently Add Script Tags to React/JSX Components?

React/JSX へのスクリプト タグの追加

React/JSX では、インライン スクリプトを組み込む方法がいくつかあります。考えられる解決策の 1 つは、スクリプトを DOM にマウントする関数をコンポーネント内に作成することです。例:

componentDidMount() {
  const script = document.createElement("script");
  script.src = "https://use.typekit.net/foobar.js";
  script.async = true;
  document.body.appendChild(script);
}

ただし、スクリプトが DOM にすでに存在する場合、または複数回ロードする必要がある場合、この方法は理想的ではありません。

より効果的なアプローチは、パッケージを利用することです。 npm のようなマネージャーを使用して、スクリプトをモジュールとしてインストールします。これにより、統合プロセスが簡素化され、インポート用にスクリプトにアクセスできるようになります。

import {useEffect} from 'react';

useEffect(() => {
  const script = document.createElement('script');
  script.src = 'https://use.typekit.net/foobar.js';
  script.async = true;
  document.body.appendChild(script);
  return () => {
    document.body.removeChild(script);
  };
}, []);

この手法により、コンポーネントがマウントされるときにスクリプトが 1 回だけロードされ、コンポーネントがアンマウントされるときにスクリプトが削除されることが保証されます。

このアプローチをさらに強化するには、スクリプト読み込みプロセスを処理するカスタム フックを作成できます。

import { useEffect } from 'react';

const useScript = (url) => {
  useEffect(() => {
    const script = document.createElement('script');
    script.src = url;
    script.async = true;
    document.body.appendChild(script);
    return () => {
      document.body.removeChild(script);
    };
  }, [url]);
};

export default useScript;

このカスタム フックは、スクリプトを必要とするコンポーネント:

import useScript from 'hooks/useScript';

const MyComponent = props => {
  useScript('https://use.typekit.net/foobar.js');
  // Rest of the component code
};

以上がReact/JSX コンポーネントにスクリプトタグを効率的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。