Bien que les littéraux de modèles ES6 offrent des capacités améliorées de manipulation de chaînes, une idée fausse courante est qu'ils sont immuables et ne peuvent pas être réutilisés ou remplacés dynamiquement au moment de l’exécution. Cependant, avec une approche intelligente impliquant le constructeur Function, il est possible de créer des littéraux de modèles réutilisables qui peuvent être évalués et interpolés à la volée.
La clé du modèle réutilisable les littéraux consiste à les traiter comme une forme intermédiaire. En convertissant la chaîne de modèle en un objet Function, nous créons effectivement une fonction de modèle qui peut être invoquée avec des données dynamiques pour générer la chaîne finale.
<code class="javascript">const templateString = `\`This is my ${expletive} reusable template!\``; const templateFunction = new Function(`return \`${templateString}\``); let expletive = 'curious'; console.log(templateFunction.call({ expletive }));</code>
Cela nous permet de remplacer la valeur de la variable d'explétif à runtime, rendant efficacement le modèle réutilisable et dynamique.
Pour simplifier davantage le processus, nous pouvons introduire une fonction d'assistance qui automatise la conversion d'une chaîne de modèle en un fonction de modèle réutilisable :
<code class="javascript">function reusableTemplate(templateString) { return `return \`${templateString.replace('{','$${')}\``; } const template = reusableTemplate(`This is my {expletive} reusable template!`); console.log(new Function(template)({ expletive: 'AMAZING' }));</code>
Cette fonction d'assistance facilite la définition et l'utilisation de modèles réutilisables avec des substitutions dynamiques.
Les littéraux de modèles réutilisables offrent plusieurs avantages :
Cependant, elles comportent également certaines limitations :
Dans l'ensemble, les littéraux des modèles ES6, lorsqu'ils sont étendus avec le constructeur Function, débloquent un nouveau niveau de polyvalence et de réutilisabilité, démontrant qu'il ne s'agit pas simplement de chaînes statiques, mais plutôt de chaînes statiques. des outils puissants pour la manipulation dynamique de chaînes et la génération de modèles.
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!