🙌

Reactで<script>タグを動的にロードする方法

2021/10/07に公開

Reactで<script>タグを動的に生成してスクリプトを実行したいことは頻繁にあると思うのでメモ

やり方

下の<script>をReactで動的にロードしたいとします。

<script
    type="text/javascript"
    src="src"
    data-client-key="key"
></script>

React で外部スクリプトを読み込むにはuseEffectを使ってロードします。

useEffect(() => {
    const head = document.getElementsByTagName('head')[0] as HTMLElement;
    const scriptUrl = document.createElement('script');
    scriptUrl.type = 'text/javascript';
    scriptUrl.src = 'src';
    scriptUrl.setAttribute("data-client-key", key);
    head.appendChild(scriptUrl);
}, []);

scriptオブジェクトに無いkeyなどはsetAttributeを使って追加することができます。

Discussion