Ответ очень грубый и для новичков (опытные разрабы меня оклюют за это но все же)
Реакт это фреймворк и соответственно задает некие правила разработки фронт части сайта.
Но если про то как он работает, то вкратце:
Вы создаете некий компонент в реакте, а он в свою очередь переводит этот самый компонент в тот же самый html код со стилями, и добавляет ему всякие js - интерактивности.
Сделан для удобства разработки сайтов (чтобы вы не писали сотни строк html, а потом потели и стилизовали это с помощью css, а + ко всему этому, еще и нужно с помощью js задавать какие-нибудь свойства вашему блоку(компоненту), к примеру чтобы при клике на кнопку у вас скрывался блок.
Что касательно компонентов в реакте, то напоминает классы в ООП. Т.е вы создаете класс(компонент) у него есть свойства и методы. В свойства класса(компонента) вы записываете значения, которые необходимы для построения из этого класса(компонента) уже обычного тега html и его стилизования, а методы класса(компонента) нужны чтобы отрисовать этот компонент и следить за его состоянием
Чтобы понять (если недоступно описал) то, что я описал ГРУБЫМ языком:
Статья на Хабре