Сложно представить себе Vue-приложение, которое состоит из 1-2 компонентов. Обычно у нас десятки и даже сотни строительных блоков. Компоненты складываются в иерархическую структуру.
Основной способ передать какие-либо данные с верхних уровней элементов к нижним — использование свойств компонентов. Для передачи чего-либо в обратном направлении обычно используют события.
Однако, если какие-либо данные необходимо передавать через несколько уровней вложенности, то этот подход будет очень трудоемким. Скорее всего, часть компонентов на пути передачи данных будут в этом лишь посредниками. То есть они будут получать данные, которые им самим не нужны. А это нарушает принципы SOLID. Такое решение станет еще более обременительным, если данные нужно передавать между соседними ветками иерархии.
Читать далее