Розуміння моделі Flux


12

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

Які вони саме?

Я прочитав багато статей, і, здається, це стосується домену.

Чи означає це, що це "абстрактна" частина, пов'язана з api-дзвінками чи зворотними дзвінками?

Мені це не дуже зрозуміло.

Редагувати: Чи може це те саме, що і кутова фабрика? Отримання віддалених даних, створення бізнес-завдання або зберігання деяких станів додатків (наприклад, поточний користувач, підключений)?


1
Посилання на те, про що саме ви говорите, було б корисно. Ви маєте на увазі цей "потік потоку"? fluxxor.com/what-is-flux.html
DougM


Flux - це не що інше, як шаблон публікації / підписки з обмеженням, що всі дані спочатку проходять через диспетчер. Це гарантує, що дані не йдуть назад (і викликають плутанину). Такі речі, як "Магазин", "Дія" тощо, - лише інший спосіб сказати компоненти системи та дані, які передаються навколо.
kiwicomb123

Відповіді:


23

Добре, дозвольте пояснити вам крок за кроком

1 Що таке флюкс?

  • Візерунок
  • Централізований диспетчер
  • Однонаправлені потоки даних
  • Елемент списку

Вони називають це Flux також з причини.

Реалізація потоку

  • Facebook Flux
  • Alt
  • Рефлюкс
  • Флуммокс
  • NuclearJS
  • Стійкий

введіть тут опис зображення

Чат з Flux

Реагуйте : Ей, дії, хтось натиснув цю кнопку "Зберегти курс".

Дія : Спасибі Реакція! Я зареєстрував творця дії у диспетчера, тож диспетчер повинен подбати про те, щоб повідомити про всі магазини, які турбуються.

Диспетчер : Дозвольте мені побачити, хто дбає про збереження курсу. Ах! Схоже, Магазин зареєстрував у мене зворотній дзвінок, тому я повідомляю їй.

Магазин : Привіт диспетчеру! Дякуємо за оновлення! Я оновлю свої дані надісланим вами корисним навантаженням. Тоді я випрошу подію для важливих компонентів React.

Реагуйте : Ооо! Блискучі нові дані з магазину! Я оновлю інтерфейс користувача, щоб це відобразити!


Flux API


регістр (функція зворотного виклику) - "Ей диспетчер, запустіть мене, коли трапляться дії. -За магазин »

незареєструватися (строковий ідентифікатор) - "Ей диспетчер, перестаньте турбуватися про цю дію. -За магазин »

waitFor (ідентифікатор масиву) - "Спочатку оновіть цей магазин. –Змагання »

відправлення (об'єм корисного навантаження) - "Ей диспетчер, розкажи магазинам про цю дію. -Дія »

isDispatching () - "Я зараз зайнятий відправленням зворотних дзвінків ".

тож питання, що виникає в нашій свідомості, є

Тож Flux - це модель публікації-підписки?

Не зовсім.

Відрізняється двома способами:

1.Кожна корисна навантаження відправляється на всі зареєстровані зворотні дзвінки.

2.Заклики можуть чекати інших зворотних викликів

Підсумок

Flux - це шаблон для однонаправлених потоків даних Дії інкапсулювати події Диспетчер - це центральний центр, який містить зворотні виклики. Магазини містять стан програми Багато реалізацій


Моя перша проблема полягає в тому, що стан дозволяє додатку мати різні дані про віддалені об'єкти api: - /
mfrachet

що ти означає, що держава дозволяє? там, де випромінювати зміну, вона називатиметься React View і знову називається методом зміни стану
Dhaval Patel

Признаю, що я будую додаток з флюсом. Я маю справу з API, а потім зберігаю дані всередині своїх магазинів. Що робити, якщо користувачі змінюють віддалені дані? У мене буде різниця між клієнтом і сервером
mfrachet

тепер де я можу знайти чому. Якщо всі диспетчер і магазин збираються зробити це вперед, то перегляньте, чому тоді не можна діяти перегляду оновлення безпосередньо. чому є посередники
Мухаммед Умер

@MuhammadUmer: Диспетчер - це додаток, а магазин базується на компоненті в додатку, тому для видалення надмірності були введені посередники
Дхаваль Пател

1

Шукаючи простий приклад ( https://github.com/facebook/flux/tree/master/examples/flux-todomvc/ ), "магазини керують станом програми для певного домену в програмі." Тобто вони містять дані про стан аспекту програми та весь код для його зміни. Щоразу, коли в Диспетчері з’являється нове оновлення, усі Магазини бачать це, вони вирішують, як оновити свої дані у відповідь, а потім повідомляють Перегляди, що дані змінилися. У прикладах Магазини містять такі речі, як "список невидимих ​​ниток" (де диспетчер повідомляє їх про те, що надійшло нове повідомлення або прочитане старе, а в представленнях відображаються користувацькі потоки повідомлень) та "поточний час відтворення та держава ».

Більш технічно: вони є проміжним шаром фреймворку, який реєструє зворотній зв'язок з диспетчером для отримання оновлень, а потім повідомляє перегляди, коли стан даних змінюється. (Тоді представлення може потім відправляти дії назад диспетчеру.) Існує абстрактний інтерфейс, який вони реалізують, де кожен Магазин реєструє зворотний виклик разом з Диспетчером і транслює події в Перегляди, але, схоже, кожен Магазин конкретно представляє домен. (Чи є контрприклади?)


0

Магазини - це області коду, які зберігають стан програми та складну логіку. Причиною їх є те, що кілька переглядів, ймовірно, використовуватимуть одні і ті ж дані, але відображатимуть їх по-іншому, або відображатимуть деякі, але не всі дані для певного домену. Наприклад, користувач входить у систему, і ви отримуєте своє ім’я, прізвище, електронну пошту, фотографію, місто, адресу, номер телефону тощо. Ця інформація відображається в окремих представленнях. Замість того, щоб дублювати дані через представлення даних, ми можемо використовувати один Магазин під назвою UserStore, який зберігає дані для користувача. Це спрощує систему, надаючи "одне місце, щоб внести зміни", коли логіка чи збережені дані повинні бути змінені. Існує маса інших причин використання магазину, але це, на мою думку, є найбільш очевидним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.