2016-03-10 2 views
3

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

Почему React называется только библиотекой просмотра, когда он позволяет нам определять состояние приложения, а также обновлять представление всякий раз, когда изменяется состояние. Это не то, что делает представление ... то, что делает полный MVC?

Например: here - это приложение для создания Todo только с React и here - это приложение для создания Todo с Flux и React.

Если мы сможем построить приложение Todo с React только тогда, зачем нам нужен Flux?

ответ

2

Вы не НУЖНО Флюс то же, что и вы, MVC. Это обе архитектуры, и вы можете, конечно, построить что-то, не используя ни того, ни другого.

Вы бы создали приложение, отличное от MVC, в 2016 году? Наверное, нет, это не значит, что люди не делали этого в прошлом.

Flux is awesome! Но поскольку большинство вещей в технологической отрасли не всегда правильное решение, все зависит от требований к проекту.

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

С Flux: «Откуда берутся данные?». Ответ: из магазинов. Redux использует это и использует только один магазин.

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

В конце всегда ваш вызов в зависимости от потребностей вашего проекта.

+0

Почему React вызывается как библиотека представлений, даже если он может обрабатывать состояние приложения? –

+0

Потому что он был задуман только для отображения данных. Данные могут меняться со временем, а facebook - способ эффективного преобразования данных, поэтому целью «состояния» было отслеживание этих изменений. Не для того, чтобы у вас была целая база данных, например структура – nbermudezs

+0

Кроме того, она не обеспечивает, как вы управляете своими данными (базовые коллекции, localstorage, локальное состояние и т. Д.), Сам реагирующий компонент заинтересован в предоставлении ваших данных, а не о том, как эти данные завершались там наверху. – nbermudezs

3

В теории вам не нужен поток. В небольших приложениях вам не нужен флюс. Но что, если ваше приложение состоит из сотен компонентов? И один из ваших компонентов - это форма. Пользователь заполняет эту форму, и вы отправляете ее содержимое на сервер. И получите ответ от сервера с новыми данными. И предположим, что данные ответа и данные из формы необходимы другим компонентам.

  1. Без потока: Вы можете переместить свои данные в корневой компонент, а затем распространить его вниз ко всем компонентам. Но если вам нужно также распространять данные из многих других компонентов? Это делает ваше приложение очень сложным.

  2. с флюсом: Вы перемещаете свои данные в магазины, и все компоненты, которые интересуются этими данными, могут получить его оттуда. Вы лучше контролируете свои приложения и исходные данные.

Я предпочитаю Redux (только один магазин и один источник истины)

редактировать:

Почему React называется библиотекой зрения, даже если она может обрабатывать состояние приложения?

MVC - это архитектурный образец программного обеспечения. Он делит данное программное приложение на три взаимосвязанные части (модели, представления, контроллеры). Если мы думаем о реакции и MVC, это будет соответствовать представлению. Но это ничего плохого. Это не значит, что вы можете использовать его только для просмотров. Он позволяет создавать обычные приложения.

Но в другой руке вы можете использовать его в качестве вида для других фреймворков (например, вы можете использовать его с угловым).

Другими словами, это очень гибкая библиотека для многих целей.

+0

Почему React вызывается как библиотека просмотра, даже если он может обрабатывать состояние приложения? –

+2

Мне кажется, что обработка состояния приложения в компонентах реакции является своего рода полезным побочным эффектом. Если вы пишете представление, вам нужно сохранить некоторую информацию о состоянии, такую ​​как видимость элементов, состояние переключателей и флажков и т. Д. Таким образом, хорошая библиотека просмотра должна предоставить какой-то способ сделать это. Но как только эта функциональность доступна, никто не мешает вам хранить все состояние приложения одинаково. Это может быть неудобно, но, безусловно, возможно. –

+0

@MadWombat Мне нравится ваше объяснение. Даже на странице «Реакт» существует «Реакт», который подстраивает пользовательские интерфейсы по-разному, разбивая их на компоненты. Это означает, что React использует реальный полнофункциональный язык программирования для ** визуализации представлений ** ». Они сделали его очень гибким, возможно, они даже не планируют использовать его в качестве полноценной функциональной структуры. –