#pug
#pug
Вопрос:
Это проблема, с которой я часто сталкиваюсь, и это заставляет меня задуматься, не ошибаюсь ли я в подходе к Pug-микшированию. Я проверил проблемы GitHub для связанных разговоров.
Учитывая эти файлы:
// main.pug
extends base
block content
include message // or the definition itself
message('Outer')
block inner
// page.pug
extends main
block inner
message('Inner')
Pug предоставит inner
блоку доступ к message
микшеру. Это согласуется с другими правилами определения области действия, такими как те, которые касаются переменных.
Я хотел бы явно включить микшины в мои блоки и страницы таким образом, чтобы у них не было «знаний» о объявлениях в блоках, которые они расширяют.
Помимо моих чувств, Pug игнорирует избыточные объявления, что означает, что если вы определите микшер, который разделяет имя с микшером из расширенного блока, Pug будет спокойно использовать существующий микшер. Вы должны быть в курсе всех миксинов из всех блоков, которые вы расширяете. РЕДАКТИРОВАТЬ: я, должно быть, неправильно запомнил это. При дальнейшем тестировании более поздний микширование переопределяет начальный.
Так ли это, или я должен использовать микшины по-другому?
Комментарии:
1. Так оно и есть. Я обнаружил, что если ваше приложение становится настолько сложным, что вы сталкиваетесь с конфликтами имен переменных, в любом случае пришло время провести рефакторинг и присвоить переменным их собственные префиксы в пространстве имен. Сила Pug в упрощении HTML, а не в создании сверхсложных приложений.
2. Спасибо, это то, что я вижу в шаблонах: общие микшины заранее включены в базовый шаблон. Также смотрите Мою правку. Я ошибался в поведении.