Многоразовые шаблонные литералы: раскрытие скрытого потенциала
Хотя шаблонные литералы в ES6 широко используются, сохраняется мнение, что они навсегда связаны с момент их создания, им не хватает гибкости для повторного использования и динамического обновления. Эта статья бросает вызов этому понятию, исследуя возможность преобразования литералов шаблона в повторно используемые и динамические документы.
Суть традиционного шаблона заключается в возможности вводить токены во время выполнения, которые можно оценить при необходимости. Однако литералы шаблонов ES6, похоже, оценивают свои замены во время объявления, что ограничивает их практичность.
The Essential Catalyst: Конструктор функций
Чтобы преодолеть это очевидное ограничение, мы используйте конструктор Function в качестве посредника. Используя эту конструкцию, мы можем отложить процесс интерполяции до тех пор, пока не будет вызвана функция:
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));
В этом примере функция fillTemplate принимает строку шаблона и набор переменных для интерполяции. Внутри функции мы создаем функцию, которая при выполнении возвращает строку шаблона со значениями из templateVars, введенными во время выполнения.
Преимущества многоразовых шаблонных литералов
Полученные в результате многоразовые шаблонные литералы имеют множество преимуществ:
Хотя это решение накладывает определенные ограничения, такие как невозможность встроенной логики JavaScript, можно найти обходные пути. разработано.
Заключение
Используя конструктор Function, мы раскрываем истинный потенциал литералов шаблонов ES6. Мы преобразуем их из статических строк в многоразовые динамические шаблоны, открывая новые возможности для организации и гибкости кода. Хотя попытки полностью воссоздать функциональность традиционных механизмов шаблонов продолжаются, этот метод обеспечивает надежную основу для расширения возможностей литералов шаблонов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3