Библиотека для декларативного создания на клиенте пользовательского интерфейса
- Скорость разработки, унифицированный подход к созданию интерфейса
- Реактивность - отсутствие необходимости следить за обновлениями состояния и обновлять представления
- Декларативность - древовидная структура компонентов и простота из переиспользования
- Необходимость изучения библиотеки
- Для комфортного использования необходим JSX, выглядит чуждо в JS/TS коде
- Сложность передачи состояния через уровни дерева компонентов
Библиотека для создания контролируемого глобального состояния
- Глобальное состояние доступное из любой точки приложения
- Синхронный доступ к состоянию можно осуществить из любой точки приложения
- Синонимом глобального состояние является "глобальная область видимости"
- Слишком строгий контроль за состоянием, из reduces нельзя сделать dispatch другого action.
- Пункт выше решается использованием redux-thunk который нарушает всевозможные органичения redux буквально превращая его в глобальную область видимости
Библиотека компонентов для построения интерфейсов
- Очень быстрая скорость разработки интерфейса
- Унифицированный интерфейс для всех частей приложения
- Удобство кастомизации
- Требует отдельного изучения и практики
- Кастомизация ограничена
- Использование ведет к потерям производительности и увеличению размера приложения
DI контейнер для реализация принципа Dependency Inversion
- Берет на себя всю работу связанную с предоставлением реализаций интерфейсов заинтересованным классам
- Удобно использовать TS декораторы @inject и @injectable
- Ооооочень понравилась
- Маркировка сущностей в контейнере осуществляется через сторонний глобальный для приложения enum с типами.
- В пользовательское приложение должен быть включен пакет reflect-metadata для добавления информации о классах