"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les littéraux des modèles ES6 peuvent-ils être vraiment réutilisables ?

Les littéraux des modèles ES6 peuvent-ils être vraiment réutilisables ?

Publié le 2024-11-08
Parcourir:128

Can ES6 Template Literals be Truly Reusable?

L'énigme de la réutilisabilité dans les littéraux de modèles ES6

La principale préoccupation soulevée dans cette discussion tourne autour du manque présumé de réutilisabilité dans les littéraux de modèles ES6. Les démonstrations conventionnelles mettent l'accent sur les substitutions au moment de la déclaration, interdisant les modifications à l'exécution.

Solution : exploiter le constructeur de fonction

Pour résoudre ce problème, une solution viable émerge sous la forme du Constructeur de fonctions. Cette approche implique de convertir la chaîne de modèle en fonction.

Considérez l'extrait suivant :

const templateString = `Hello ${this.name}!`;
const templateVars = {
    name: "world"    
};

const fillTemplate = function(templateString, templateVars){
    return new Function("return `"   templateString   "`;").call(templateVars);
};

console.log(fillTemplate(templateString, templateVars));

En appelant cette fonction, vous pouvez générer la chaîne souhaitée tout en possédant la flexibilité de modifier les variables au moment de l'exécution.

Avantages de cette approche :

  • Permet la substitution à l'exécution des valeurs de modèle
  • Facilite l'interpolation à partir de sources externes sources, telles que des fichiers
  • Permet la manipulation dynamique de chaînes

Inconvénients potentiels :

  • Les balises de modèle peuvent nécessiter un effort de mise en œuvre supplémentaire
  • La logique JavaScript intégrée dans les modèles n'est pas prise en charge en raison d'une interpolation tardive
  • Surcharge de mémoire associée à la création de fonctions pour chaque modèle use

En résumé, bien que les littéraux de modèles ES6 manquent intrinsèquement d'une véritable réutilisabilité, l'utilisation du constructeur Function offre une solution de contournement qui émule le comportement souhaité de création et de modification de modèles au moment de l'exécution.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3