Являются ли селекторы более подходящими для получения вычисляемых данных, чем методы класса? - PullRequest
0 голосов
/ 25 декабря 2018

Я использовал в проекте реагировать, сокращать и повторно выбирать.Является ли предпочтительным подход для приложений, использующих перевыбор, для перемещения всех вычислимых данных из методов класса в селекторы и избежания смешивания использования обоих, или этот подход имеет разные концепции?

class DocsListView {
  getOutdatedDocs() {
  // computations from props
  }

  getPrimaryDocs() {
  // computations from props
  }

  getDocs() {
    if(this.props.showOutdated) {
      return this.getOutdatedDocs();
    }

    return this.getPrimaryDocs();
  }

  render() {
    return (
      <DocsTable docs={this.getDocs()} />
    )
  }
}

export const DocsList = connect(createStructuredSelector({
  allDocs: allDocsSelector,
  showOutdated: outdatedFlagSelector,
  getRecordsFromSomeDictForDocsComparsion: dictSelector(DICT),
  // many Other Simple Selectors
}))(DocsListView)

Как лучше всего использовать методы класса, описанные ниже в компонентном чанке? Обратите внимание, вопрос о хитросплетениях и неверных концепциях, а не об оптимизациях

1 Ответ

0 голосов
/ 25 декабря 2018

Повторный выбор используется для получения вычисленных данных. Он рассчитает значение и кеширует его в первый раз, когда вы вызовете его во второй раз, он вернетВы кэшированное значение вместо того, чтобы выполнить вычисление снова.При условии, что ваше состояние не изменилось.Если значение изменилось с момента последнего кэширования, оно снова выполнит вычисление.

Где, как будто вы будете вычислять вещи в методах класса, они не будут кэшироваться, и каждый раз, когда вы будете вызывать методы класса,расчет будет повторяться, даже если значения не изменились.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...