Нужно каким-либо образом оформить глобальное хранилище и добавлять избранные фотографии туда. Это можно сделать при помощи Redux, MobX и пр., но проще всего будет через React Context.
На текущем проекте у нас CSS Modules, на предыдущем был styled-components. И то, и то можно использовать. Это вопрос личных предпочтений. Но, пожалуй, styled-components - это более "React way", нежели CSS Modules.
Посмотрите руководство - там написано все по-русски понятным языком.
В Vue, например, можно верстать на любом шаблонизаторе (например, pug) с использованием любых препроцессоров (например, sass) прямо в самих компонентах.
Использование сокетов и пр. никак не связано ни с Vue, ни с Реактом - и тот и другой отвечают только за слой представления. Делайте на том, что лучше знаете. Я бы выбрал Vue.
А при чем тут фреймворки и ES6? Тот же Angular2+ можно и на ES5 запустить, и без поддержки TypeScript.
Так что писать код Вы можете хоть на ES7, просто нужно потом прогнать его через транспилер типа Babel.