• Приветствие и представление

    • Спикер: Иван Малюгин
    • Ожидания от доклада: как вдохнуть новую жизнь в Redux. Основные проблемы использования Redux на практике.
  • Обсуждение проблем с Redux

    • Использование Redux на рабочих проектах.
    • Опасения новых сотрудников при упоминании Redux в интервью.
    • Потребность в улучшении подходов к управлению состоянием.
  • Компоненты и обмен данными в React

    • Проблема "props drilling" без использования Redux: данные передаются сверху вниз через несколько уровней компонентов.
    • При добавлении Redux появляется возможность связывать компоненты, избегая передачи пропсов через промежуточные компоненты.
    • Два подхода:
    • Коннектить все компоненты для сокращения props drilling.
    • Оставлять компоненты чистыми для упрощения кода.
  • Практики использования селекторов Redux

    • Селекторы для извлечения вложенных данных (например,ราคา в определённом товаре).
    • Проблема: сложность управляемых зависимостей между селекторами.
    • Решение: использование createSelector из библиотеки reselect, чтобы улучшить кэширование данных.
  • Проблемы с существующими селекторами

    • Селекторы могут становиться слишком сложными и запутанными.
    • Зависимости между селекторами могут усложнять управление состоянием.
    • Опыт с другими state-менеджерами (например, riatom, ReactQuery) не решал основную проблему, и был возвращен к Redux.
  • Создание нового решения

    • Идея: использование контекста для управления состоянием.
    • ReduxCurrent как новая библиотека будет использовать подход "current context“, позволяя создавать провайдеры с модифицированным состоянием.
    • Решение проблемы селекторов: возможность добавлять модифицированные ключи и использовать их в селекторах без изменения кода.
  • API библиотеки ReduxCurrent

    • Внутренняя реализация: методы для создания и инъекции текущих значений.
    • Селекторы и провайдеры для управления данными.
    • Введение "injectable actions" для оптимизации работы с exponses.
  • Рефакторинг компонентов

    • Переход от обычных компонентов к смарт-компонентам с использованием библиотеки управления.
    • Хорошая типизация через TypeScript.
    • Использование функций модуля для работы с селекторами и уменьшение дублирования.
  • Плюсы и минусы подхода

    • Плюсы: отсутствие мидлваров, возможность переиспользования кода, упрощение работы с массивами и селекторами.
    • Минусы: потеря прозрачности в наблюдаемости, проблемы с кабелями селекторов и замиранием состояния.
  • Заключение

    • Сообщение о доступности библиотеки на GitHub и NPM.
    • Вопросы и ответы по докладу.
    • Интересные идеи о возможных переходах на более современные state-менеджеры.
    • Контроль за типизацией и упрощение управления данными через контексты.
    • Советы по доработке практик и работе с библиотеками для управления состоянием.