Стоит ли реализовывать умные компоненты?
==========================================

 Стоит ли реализовывать умные компоненты?  

Или как не напороться на боль.  

  

Изучив некоторые рекомендации VUE и то что я нашёл в интернете.  

  

Есть такое понятие как умные и глупые компоненты.  

  

Глупые компоненты не зависят от логики основного приложения.  

Умные компоненты, это собственно страницы, которые жёстко привязаны к проекту и много от чего зависят.  

  

Мой вопрос заключается в том, как организовать реализацию умных компонентов (не страниц) и стоит ли так делать?  

Например, в моём приложении, часто встречается одна и та же логика одного компонента.  

Это Autocomplete, который должен в зависимости от введённых данных загружать список.  

Согласитесь, было бы нелогично в десяти местах реализовывать один и тот же механизм.  

  

Поначалу я так и сделал, реализовав всё это дело непосредственно в папке components, а потом понял что, совершил ошибку и мне не стоило там реализовывать логику загрузки данных.  

Это нужно сделать как-то иначе.  

  

Я понимаю, что вопрос тривиальный, хотелось бы услышать совета по поводу организации (умных, глупых). 

 Вы просто столкнулись с общей проблемой переиспользования кода.  

Конечно хочется писать код один раз и избегать копипасты, но не всегда этого легко достичь.  

  

Побороть эту проблему может только грамотное планирование структуры програмы. Далеко не всегда можно достичь нужного результата с первого раза, приходится делать рефакторинг.  

  

Вот несколько принципов:  

- старайтесь разбивать программу на компотенты.  

- чем меньше и проще компонеты, тем проще их переиспользовать и проще с ними работать.  

- используйте миксины когда вам нужно переиспользовать логику и нельзя вынести ее в отдельный компонент.  

- разные вычисления можно вообще вынести в отдельные файлы в папку assets