@feelsgood

Mixin vs. Include в Pug?

Что лучше подходит для переиспользования разных структур разметки в Pug.js, например при использовании компонентного подхода в верстке? Допустим есть кнопка, которая может быть:

button.btn.btn--default Submit
button.btn.btn--disable Send
...


Лучше использовать миксин, что вроде:
mixin btn(type)
	button.btn(class=`btn--${type}`) Text
и втыкать его в нужные места:
+btn('default')
+btn('disable')


Или лучше создавать файлы с нужной разметкой и вставлять с помощью include?
btn-default.pug
btn-disable.pug


Понятно, что дело одними кнопками не ограничивается и предполагается переиспользовать более сложную разметку
  • Вопрос задан
  • 2600 просмотров
Решения вопроса 2
k12th
@k12th
console.log(`You're pulling my leg, right?`);
В миксин явно передаются параметры, и это великое счастье. Если вы попытаетесь эмулировать миксины инклюдами, то вы быстро столкнетесь с таким кодом:

- var buttonTitle = "кнопка";
- var buttonSmall = "small";
- var buttonType = "danger";
- var icon = "trash";
include 'includes/button'


Представьте две или три такие кнопки рядом. Вы все еще хотите делать это инклюдами? А если надо в кнопку передать кастомную верстку? С инклюдами это вообще невозможно.

Инклюдами можно только подключать эти самые миксины, имхо.
Ответ написан
Комментировать
werty1001
@werty1001
undefined
Кнопки конечно не стоит выносить куда-то, более сложные конструкции лучше делать миксинами.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы