1. Декларативность как догма: «UI — это функция от состояния» — эта концепция перевернула фронтенд. Вместо ручного управления DOM («добавить класс здесь, обновить атрибут там») разработчик описывает, как интерфейс должен выглядеть при заданных пропсах и состоянии. React берёт на себя муторную работу по синхронизации.
2. Однонаправленный поток данных: Flux-архитектура (не Redux!) заложила главное правило: данные текут в одном направлении — от родителя к потомку. Это ограничение, которое предотвращает хаотичные мутации состояния. Компонент — это чёрный ящик: он получает пропсы, рендерит UI и может запрашивать изменения через колбэки.
3. Композиция вместо наследования: React отверг ООП-подход в пользу композиции компонентов. Вместо class Button extends Control — функция Button, которая принимает children и рендерит их внутри button. Это ближе к естественному способу мышления о интерфейсах.