блокирующих функционал приложения. Сообщение состоит из иконки, тайтла и сабтайтла (некоторые виды могут иметь кнопку с роутингом внутри приложения или внешнюю ссылку)
Визуально они не сложные и типичные
Какой паттерн лучше применить в таком случае? Рассматриваю фабрику или строителя
Не хочется создавать 5 одинаковых компонентов с описанием разных опций
А как вы здесь видеть имплементацию этих паттернов? Недостаточно будет одного компонента или одного + оберток над ним?
Например создать компонент, который будет принимать свойство (например type) и в зависимости от указанного type рендерить разные текста и кнопки/ссылки Что думаете на счет большого количества таких фрагментов кода в компоненте? По сути мы описываем разные узлы через такие вот условия (4 узла * 5 типов = ~20 условий) <template v-if="type === '...'"> ... </template>
Требуется во многих местах использовать компонент с одним и тем же текстом?
Лучше сделать компонент, который принимает любой текст и иконку на вход + содержимое для кнопки, а поверх уже нужные компоненты с фиксированными параметрами
А почему template? Сделайте 5 компонентов реализующих контент каждого из вариантов и используйте их как <Вариант1 v-if="type ===.... <Вариант2 v-if="type ===....
В таком случае мы нарушаем принцип DRY, у нас будет 5 компонентов с одинаковой структурой DOM, и одинаковыми CSS-классами Сейчас этот вариант кажется более удобным, не смотря на дублирование
а template v-if dry не нарушает?
Не 5 одинаковый, а один - основа и 5 поверх него оберток
Я конечно не знаю какая там разметка, но я не предлагаю делать 5 с одинаковой разметкой, а предлагаю сделать компоненты которые будут иметь различия, если конечно в вашем варианте это возможно и использовать их в одной обёртке (что там? Контейнер с крестиком и каким-то позиционированием). Ну и наверное кроме Драй нужно помнить о Кисс и не пытаться усложнять себе жизнь там, где это не требуется. Говорю об этом потому что в дальнейшем ваши темплейты с ифами превратятся в спагетти при добавлении/изменении требований
Обсуждают сегодня