Общий Redux Различные магазины приложений.. как?

Я здесь немного в замешательстве. У меня есть два приложения. Это отдельные инструменты. НО, один из инструментов 1 использует часть инструмента 2. КАК инструмент 1 может перейти в состояние Redux инструмента 2? Есть ли промежуточное программное обеспечение, которое позволяет мне как-то связать их.

ИНСТРУМЕНТАЛЬНОЕ ПРИЛОЖЕНИЕ1 --- имеет собственное хранилище резервных копий ИНСТРУМЕНТАЛЬНОЕ ПРИЛОЖЕНИЕ2 --- имеет собственное хранилище резервных копий

Мне нужно поведение APP2 для APP1. Итак, вместо того, чтобы «создавать» новую версию, просто импортируйте подраздел APP2 и используйте его… ТЕПЕРЬ, вот в чем загвоздка. Теперь APP1 нужно знать, как устанавливать и извлекать состояния, которые он хранит в подкомпоненте APP2....

Существует ли методология для редукции для этого или?

Хуже того, я думаю, я могу сохранить состояние подкомпонента APP2 в localStorage или Redis и т. д., а затем я могу гидратировать APP1 с ним... но....


person james emanon    schedule 07.04.2016    source источник
comment
Не могли бы вы уточнить, что вы имеете в виду, говоря о необходимости поведения APP2 для APP1. Вы, безусловно, можете совместно использовать компоненты между различными приложениями, и ваши компоненты должны обеспечивать поведение ваших приложений. Redux в основном предназначен для управления данными состояния. Если бы вы могли предоставить минимальный пример кода и уточнить его, это было бы очень полезно, так как сейчас не совсем понятно, что вы пытаетесь сделать.   -  person Andy Noelker    schedule 08.04.2016
comment
У меня еще нет кода, я его создаю и хочу убедиться, что делаю это правильно. Например. Допустим, в APP2 у него есть собственное состояние со своими действиями. Вы говорите, что в APP1 у меня также есть те же действия и т. д., поэтому я просто создаю экземпляр того же хранилища?   -  person james emanon    schedule 08.04.2016
comment
Я думаю, что использование локального хранилища или Redis повлияет на производительность вашего приложения 1. Это добавит задержку в несколько мс для каждого действия, которое требует другого приложения. Если синхронизация между приложениями 1 и 2 не критична в миллисекундах, я бы предложил сохранить копию состояния tool2 в состоянии tool1 и обновлять его каждые X секунд с помощью определенного действия tool1. Таким образом, вы не задержите выполнение действия и будете иметь четкое представление в данный момент времени о том, какая версия состояния tool2 использовалась tool1.   -  person Harijoe    schedule 08.04.2016
comment
но как я могу взаимодействовать между двумя хранилищами, чтобы при импорте/использовании компонента из APP2 я мог получить доступ к его хранилищу? Вот в чем проблема... APP1 должен иметь доступ к хранилищу APP2 и получать информацию. Я надеялся, что есть промежуточное программное обеспечение, которое позволит выполнять своего рода слияние.   -  person james emanon    schedule 08.04.2016


Ответы (1)


Не так сложно.

Вы можете сделать это, предоставив общие компоненты контейнера (обернутые путем вызова connect() реакции-редукции), общие редукторы, общие действия (с создателями действий) и общие промежуточные программы. Затем вы используете компоненты контейнера, вставляете редукторы и применяете промежуточное ПО в своем основном приложении.

Это демонстрационное приложение содержит общие автономные компоненты.
https://github.com/kuy/popover-profile

Приложение Timeline: демонстрация в Интернете
Приложение для сообщений: Онлайн-демонстрация

Пожалуйста, наведите курсор на имя пользователя на страницах. Вы получите всплывающие профили.

Эти два приложения имеют общий компонент профиля Popover, такой как всплывающая подсказка профиля Gmail или SoundCloud для имен при наведении курсора. Этот компонент не только обменивается состоянием, он взаимодействует с (поддельным) сервером API. Это можно сделать с помощью общего ПО промежуточного слоя с помощью redux-saga.

person kuy    schedule 15.04.2016