Нет необходимости для состояния в компонентах React при использовании Redux и React-Redux?

13

Управление состоянием только с реакцией

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

Управление состоянием с помощью React и Redux

Если вы решили использовать Redux в сочетании с React, вы можете переместить все состояние из каждой из ваших компонентов React в общее состояние приложения Redux. Каждый компонент, требующий среза состояния приложения Redux, может подключиться к состоянию через функцию React-Redux connect.

Вопрос

Означает ли это, что вам больше не нужно писать какие-либо компоненты React, связанные с React state (т.е. this.setState), так как React-Redux connect использует компоненты React с состоянием Redux, передавая данные в container как props?

  • 2
    Да. Нужно или нет, вам нужно больше обсуждений и подробностей о вашем приложении. Хотя всегда приятно иметь единственный источник правды.
  • 1
    Тем не менее, когда вы хотите придерживаться только React, но ищете более легкий подход для обработки состояния компонента, вы можете добавить библиотеку управления состоянием, такую как MobX ( mobxjs.github.io/mobx ). Он может помочь вам с внутренним состоянием компонента ( medium.com/@mweststrate/…) ), но также сохранить состояние за пределами вашего компонента.
Теги:
react-redux
redux

1 ответ

8
Лучший ответ

Есть разные мнения по этому поводу, но общий взгляд, похоже, сводится к тому, что redux должен содержать только "состояние приложения". Отдельные компоненты реагирования, такие как выпадающие списки или модалы, по-прежнему будут иметь собственное состояние.

По этому поводу еще много споров, посмотрите на эту проблему, например, о том, как управлять состоянием локального компонента: https://github.com/reactjs/redux/issues/159

Появились некоторые проекты, которые пытаются решить эту "проблему":

  • 4
    Я второй это. Давайте послушаем, что говорит создатель Redux :) twitter.com/dan_abramov/status/623097205386293248
  • 2
    Я также согласен: состояние может быть полезно, например, для компонента ввода, где пользователь может редактировать поле ввода, обновляя состояние только небольшими циклами. Когда изменение состояния (содержимое поля ввода) может содержаться в небольшом реагирующем компоненте, без необходимости знать об этом весь остальной мир. Там, где необходимость полного цикла в Redux (возможно, при запуске многих других методов) необходима только при нажатии пользователем ввода и т. Д.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню