Футер, хедер и меню - 3 разных компонента, их можно вставить в один компонент Wrapper, который будет рендерить сhildren'ов (основной контент). Стили можно подключить 1 раз в index.js. Если настроите вебпак, то он сможет вам собирать стили в один сss. В Сreate React App уже все настроено для sass, и можно без конфигов сразу подключить. Если трудно разобраться, то можете билдить стили, и этот файл подключать в реакту 1 раз. Если хотите добиться модульности, и переиспользовать компоненты в других проектах, то лучше стили писать к каждому компоненту. Еще можно посмотреть на styled-components (сss in js).
Примеров структур проектов в интернете много. Я, например, разбиваю страницы по папкам, в которых лежит сам компонент, редюсер, экшен\сага и подпапка для дополнительных компонентов. Можно хранить отдельно редюсеры, отдельно экшены, отдельно компоненты.
Да, и если вы пишите на реакте, то все элементы должны быть в виде компонентов, а не в виде верстки, потому что реакт это либа для работы с dom.