Reactjs — поток данных

#reactjs #state

#reactjs #состояние

Вопрос:

У меня есть общий вопрос о том, куда загружать данные в Reactjs.

Основной компонент называется App. Затем приложение возвращает 3 компонента: верхний, основной и нижний колонтитулы. Теперь внутри Body есть компонент Tab, который далее подразделяется на несколько компонентов, включая компонент под названием «сетки».

Теперь я хочу, чтобы мои данные (после фильтрации) отображались в сетках.

Пожалуйста, поправьте меня, если я делаю это неправильно, но мое мышление:

  1. Загрузите данные в приложение основного компонента как состояние:
  2. Передайте его в тело с помощью:

     <Body data={this.state.data} />
      
  3. В основном компоненте передайте его дальше как:

     <Tabs data={this.props.data} />
      
  4. В компоненте Tabs передайте его дальше как:

     <Grids data={this.props.data} />
      
  5. В таблицах напишите все методы для фильтрации данных и соответствующим образом отобразите / верните их.

Это правильно?

Спасибо

Ответ №1:

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

Однако контекст сопровождается предупреждением:

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

Кстати, для управления данными я бы использовал что-то вроде Flux или Redux. Управление данными непосредственно в компонентах React быстро становится проблемой по мере роста приложения. С другой стороны, Flux / Redux очень хорошо масштабируется.

Комментарии:

1. Спасибо за отрицательный отзыв, не могли бы вы объяснить, почему вы не согласны?

2. Да. Я смотрел на Redux, но до сих пор не могу разобраться в этом.