Для того чтобы был смысл в получаемых компонентах, можно пойти например от дизайна, то есть взять и просто разделить дизайн страницы на логические блоки, это будут самые крупные контейнеры, затем в них начать выделять логически отделенные или повторяющиеся элементы.
Данный процесс можно повторять очень долго, но важно остановится в момент когда это уже не несет логической основы.
Также рекомендую посмотреть на подход атомарного дизайна,
Это статью с точки зрения дизайна
sketchapp.me/verstka-sajta-s-pomoshhyu-sketch-i-at...
Это со стороны организации
bradfrost.com/blog/post/atomic-web-design
Не привязано к реакту, но хорошо ложится на него.