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

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

Barbara Streisand
リリース: 2024-12-18 07:09:11
オリジナル
168 人が閲覧しました

How to Safely Add Script Tags to React Components?

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

React では、dangerlySetInnerHTML を使用するか、スクリプト要素を作成してインライン スクリプトを追加できます。コンポーネントDidMountライフサイクルメソッド。

dangerouslySetInnerHTML の使用

生の HTML を文字列として指定できますが、セキュリティ上の脆弱性が生じる可能性があるため、注意して使用する必要があることに注意することが重要です。例:

<script src="https://use.typekit.net/foobar.js"></script>
<script dangerouslySetInnerHTML={{__html: 'try{Typekit.load({ async: true });}catch(e){}'}}></script>
ログイン後にコピー

ただし、この方法では、常に目的のスクリプトが実行されるとは限りません。

componentDidMount でのスクリプト要素の作成

次の点を考慮してください:

componentDidMount () {
    const script = document.createElement("script");

    script.src = "https://use.typekit.net/foobar.js";
    script.async = true;

    document.body.appendChild(script);
}
ログイン後にコピー

このメソッドコンポーネントのマウント時にスクリプトを DOM に動的に挿入します。

推奨アプローチ: npm パッケージの使用
import Typekit from 'typekit';
ログイン後にコピー
インライン スクリプトを使用する前に、事前にスクリプトが実行されているかどうかを確認することをお勧めします。 -built npm パッケージは、ロードするスクリプトに使用できます。たとえば、Typekit をロードしたい場合は、次のように typekit パッケージをインストールしてインポートできます:

更新: useEffect フックの利用

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);
  }
}, []);
ログイン後にコピー
フックの導入により、useEffect を使用してスクリプトをさらに読み込むことができます。効率的に:

簡単に再利用できるように、このロジックをカスタム フックにラップすることもできます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート