Maison > interface Web > js tutoriel > Comment ajouter efficacement des balises de script aux composants React/JSX ?

Comment ajouter efficacement des balises de script aux composants React/JSX ?

Mary-Kate Olsen
Libérer: 2024-12-09 04:48:10
original
1062 Les gens l'ont consulté

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

Ajout d'une balise de script à React/JSX

Dans React/JSX, il existe plusieurs approches pour incorporer des scripts en ligne. Une solution potentielle consiste à créer une fonction dans le composant qui monte le script dans le DOM. Par exemple :

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

Cependant, cette méthode n'est pas idéale si le script existe déjà dans le DOM ou doit être chargé plusieurs fois.

Une approche plus efficace consiste à exploiter un package gestionnaire comme npm pour installer le script en tant que module. Cela simplifie le processus d'intégration et rend le script accessible pour l'importation :

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);
  };
}, []);
Copier après la connexion

Cette technique garantit que le script n'est chargé qu'une seule fois lors du montage du composant et est supprimé lorsque le composant se démonte.

Pour améliorer encore cette approche, un hook personnalisé peut être créé pour gérer le processus de chargement du script :

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;
Copier après la connexion

Ce hook personnalisé peut ensuite être utilisé dans n'importe quel composant nécessitant le scénario :

import useScript from 'hooks/useScript';

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal