Собираюсь написать веб приложение по типу "Avito" и попутно изучая Vue js. С реактивными фрейм ворками я практически не знаком, разве что устно. Сейчас я на этапе создание модулей для постов. Каждый пост "делится" на 3 части: Верхняя, которая содержит в себе аватар, имя, фамилия, дата регистрации, средняя, которая содержит описание и нижняя, которая содержит рейтинг, просмотры и т.п. И встал вопрос реализации. Как лучше написать компоненты? Сделать один общий для всего поста, разбить на верхний, средний и нижний. Или вообще для каждой части поста сделать отдельный компонент?
Суть компонентного подхода в следующем:
1) Логика и представление отделяются друг от друга
2) Функционал разделяется на слабозависимые и переиспользуемые компоненты
3) Компоненты компонуются в различных комбинациях, реализуя готовое приложение
Поэтому ответ на ваш вопрос следующий:
1) Разбить всё на максимально простые (но не проще) переиспользуемые компоненты
2) Объединить их в более крупные компоненты и самые крупные из них объеднить в корне приложения (файл в котором запускается корневой экземпляр Vue) в готовое приложение
Как вы думаете, есть смысл в создании оберток над компонентами ui фреймворков по типу vuetify? Не получится ли оверхэда с прокидыванием пропсов внутрь этих оберточных компонентов и эммита событий наружу? Дело в том, что на проекте нет особой дизайн системы, но хотелось бы к ней прийти.
andrew_andrey, всё зависит от потребностей вашей системы. Если большая, то смысл имеет. Особенно, если изменения происходят часто и много. Оверхед, конечно, будет. Для того и нужна оценка, чтоб понять оправдан ли этот оверхэд или нет. Оцените навскидку насколько вам нужна такая организация кода и сделайте вывод. Конечно, неплохо бы и с коллегами посоветоваться. В результате это может облегчить вам работу. Но не делайте ничего заранее. Если вам это не требуется прям сейчас, то не факт, что понадобится в будущем. Помните о принципах KISS и YAGNI.