Отбор полезных и качественных сайтов

Применение паттерна observer в Redux и Mobx

ВСЕ САЙТЫ ПРОВЕРЕНЫ!


Паттерн «observer» известен наверное с момента появления самого ооп. Упрощенно можно представить что есть объект который хранит список слушателей и имеет метод «добавить», «удалить» и «оповестить», а внешний код либо подписывается либо оповещает подписчиков

class Observable {
  listeners = new Set();
  subscribe(listener){
    this.listeners.add(listener)
  }
  unsubscribe(listener){
    this.listeners.delete(listener)
  }
  trigger(){
    for(const listener of this.listeners){
       listener();
    }
  }
}

В redux-е этот паттерн применяется без всяких изменений  — пакет «react-redux» предоставляет функцию connect которая оборачивает компонент и при вызове componentDidMount вызовет subscribe() метод у Observable, при вызове componentWillUnmount()  вызовет  unsubscribе() а dispatch() просто вызовет метод trigger() который в цикле вызовет всех слушателей где каждый в свою очередь вызовет mapStateToProps() и потом в зависимости от того изменилось ли значение  —  вызовет setState() на самом компоненте. Все очень просто, но платой за простоту является необходимость явно указывать от каких частей стора зависит компонент внутри mapStateToProps().

Читать дальше →

WWW.CTLS.RU

КУПИТЬ ДИПЛОМ ЮУРГУ

КАТАЛОГ САЙТОВ РУНЕТА

Авторизация
*
*
Войти с помощью: 

Регистрация
*
*
*
Пароль не введен
*
Войти с помощью: 

четырнадцать − восемь =

Генерация пароля