Как правильно разбивать проект на компоненты?
Всё просто.
* Если кусок кода выглядит, как отдельная сущность — выделяй в компонент
* Если кусок кода используется в более чем одном месте — выделяй
В плане организации компонентов лично мне  БЭМ нравится