«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Могут ли литералы шаблонов ES6 быть по-настоящему многоразовыми?

Могут ли литералы шаблонов ES6 быть по-настоящему многоразовыми?

Опубликовано 8 ноября 2024 г.
Просматривать:380

Can ES6 Template Literals be Truly Reusable?

Загадка повторного использования в литералах шаблонов ES6

Основная проблема, поднятая в этом обсуждении, связана с предполагаемым отсутствием возможности повторного использования в литералах шаблонов ES6. Обычные демонстрации подчеркивают замены во время объявления, запрещая модификацию во время выполнения.

Решение: использование конструктора функций

Для решения этой проблемы появляется жизнеспособное решение в виде Конструктор функций. Этот подход предполагает преобразование строки шаблона в функцию.

Рассмотрим следующий фрагмент:

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

Вызывая эту функцию, вы можете сгенерировать нужную строку, сохраняя при этом гибкость в изменении переменных во время выполнения.

Преимущества этот подход:

  • Включает подстановку значений шаблона во время выполнения
  • Облегчает интерполяцию из внешних источников, таких как файлы
  • Позволяет динамически манипулировать строками

Потенциальные недостатки:

  • Теги шаблонов могут потребовать дополнительных усилий по реализации
  • Встроенная логика JavaScript в шаблонах не поддерживается из-за поздней интерполяции
  • Накладные расходы памяти, связанные с созданием функции для каждого использования шаблона.

Подводя итог, хотя литералам шаблона ES6 по своей сути не хватает истинной возможности повторного использования, использование конструктора Function предлагает обходной путь, который имитирует желаемое поведение создания и изменение шаблонов во время выполнения.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3