37. Уроки, Курс React JS - store, state, ООП, рефакторинг

YOUTUBE · 16.11.2025 08:37

Ключевые темы и таймкоды

Введение в курс

0:00
  • Курс «React путь самурая» охватывает базовые принципы работы с React.
  • Обсуждение сложности и увлекательности темы.
  • Упоминание о дальнейшем углублении в тему классовых компонентов.

Упаковка функций в объект

0:59
  • Задача: упаковать все функции и переменные в один объект.
  • Создание объекта Store с приватным свойством state.
  • Преобразование функций в методы объекта Store.

Рефакторинг методов

1:58
  • Удаление ненужных методов и переменных.
  • Превращение методов в свойства объекта Store.
  • Экспорт объекта Store вместо отдельных функций.

Импорт и использование объекта Store

2:57
  • Импорт объекта Store вместо отдельных методов.
  • Обращение к методам через объект Store.
  • Использование нижнего подчёркивания для обозначения приватных методов.

Получение состояния

4:54
  • Создание метода getState для получения состояния.
  • Передача состояния как callback.
  • Важность использования объекта Store для доступа к состоянию.

Инкапсуляция логики

6:54
  • Инкапсуляция логики работы с данными в методах объекта Store.
  • Сокрытие деталей работы с данными от внешнего мира.
  • Пример использования инкапсуляции при обновлении поста.

Уведомление подписчиков

8:51
  • Реализация функции notifySubscriber для уведомления подписчиков об изменениях.
  • Подписчики могут быть различными: сервер, наблюдатель.
  • Проверка корректности работы системы через рендеринг.

Анализ ошибки в JavaScript

9:47
  • Установка дебаггера на 40-й строке кода для отладки создания объекта.
  • Обнаружение ошибки: «не могу прочитать свойства profile page undefined».
  • Попытка понять причину ошибки через анализ цепочки вызовов.

Детальный анализ объекта

10:46
  • Проверка свойств объекта с помощью дебаггера.
  • Описание структуры объекта и его свойств: get, subscribe, update, count.
  • Подтверждение, что объект создан с помощью литерала объекта.

Контекст вызова методов

11:46
  • Объяснение концепции контекста вызова методов в JavaScript.
  • Различие между контекстом вызова внутри метода и вне его.
  • Важность понимания контекста вызова для корректной работы методов.

Проблемы с контекстом вызова

12:43
  • Анализ ошибки в другом методе: «profile не прочитался».
  • Сравнение характеристик объекта в разных методах.
  • Указание на сложность темы контекста вызова для новичков.

Примеры использования контекста вызова

14:39
  • Пример вызова метода getState от имени объекта store.
  • Объяснение, как контекст вызова влияет на работу методов.
  • Нарушение контекста вызова при использовании callback-функций.

Анализ контекста вызова в callback-функциях

16:38
  • Детальный анализ контекста вызова в callback-функции.
  • Проверка, от чьего имени вызывается метод.
  • Подтверждение, что метод вызывается от имени объекта props.

Решение проблемы с контекстом вызова

18:36
  • Объяснение проблемы с доступом к объекту внутри метода.
  • Лайфхак: биндинг метода для сохранения владельца объекта.
  • Рекомендация использовать биндинг для корректной работы методов.

Связывание методов

19:34
  • Метод связывается с автором или владельцем метода.
  • Боинг не вызывает функцию id пост напрямую, а возвращает другую функцию.
  • Важно понимать концепцию связывания методов.

Проверка и обновление страницы

20:33
  • Обновление страницы проверяет состояние state.
  • Функции вызываются от имени с тором, что обеспечивает безопасность.
  • Связанные функции не могут быть вызваны от другого имени.

Контекст вызова

21:29
  • Внутри контекста вызова сохраняется информация о том, как был создан объект.
  • Объект имеет свойства state, call subscriber и другие.
  • Закрытие объекта приводит к очистке всех его свойств.

Управление состоянием в React

22:28
  • React предоставляет возможности для управления состоянием.
  • В больших приложениях state не используется из-за дублирования данных.
  • Локальные компоненты используют state для сохранения незначительных данных.

Использование Redux в React

24:28
  • Для управления состоянием в соцсети используется связка Redux + React.
  • Локальные компоненты сохраняют незначительные данные, которые не нужно передавать в Redux.
  • Создаётся копия хранилища для понимания работы Redux.

Понимание работы Redux

25:26
  • Объясняется, как работает Redux внутри React.
  • Цель — помочь разработчикам понять концептуальные аспекты работы Redux.
  • Подчёркивается важность понимания работы Redux для будущих разработчиков.

Заключение

26:25
  • Благодарность за внимание и комментарии.
  • Анонс более сложных тем в будущих выпусках.
  • Призыв ставить лайки и подписываться на канал.