"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Os literais de modelo ES6 podem ser verdadeiramente reutilizáveis?

Os literais de modelo ES6 podem ser verdadeiramente reutilizáveis?

Publicado em 2024-11-08
Navegar:381

Can ES6 Template Literals be Truly Reusable?

Enigma da reutilização em literais de modelo ES6

A principal preocupação levantada nesta discussão gira em torno da suposta falta de reutilização em literais de modelo ES6. As demonstrações convencionais enfatizam as substituições no momento da declaração, não permitindo a modificação do tempo de execução.

Solução: aproveitando o construtor de função

Para resolver esse problema, uma solução viável surge na forma do Construtor de função. Essa abordagem envolve a conversão da string do modelo em uma função.

Considere o seguinte trecho:

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));

Ao invocar esta função, você pode gerar a string desejada enquanto possui a flexibilidade para modificar variáveis ​​em tempo de execução.

Benefícios de esta abordagem:

  • Permite a substituição de valores de modelo em tempo de execução
  • Facilita a interpolação de fontes externas, como arquivos
  • Permite a manipulação dinâmica de strings

Possíveis desvantagens:

  • As tags de modelo podem exigir esforço adicional de implementação
  • A lógica JavaScript in-line nos modelos não é suportada devido à interpolação tardia
  • Sobrecarga de memória associada à criação de função para cada uso de modelo

Em resumo, embora os literais de modelo ES6 inerentemente careçam de verdadeira reutilização, empregar o construtor Function oferece uma solução alternativa que emula o comportamento desejado de criação e modificação de modelos em tempo de execução.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3