Я ищу немного ссылки на redux; из-за поддержки нескольких разных платформ (Java Android, ios swift, ios Obj-c, go, Node.js и веб-javascript) Я издевался над решением для управления приложениями в реальном времени.Редукционный поток для динамического реального времени api?
Объяснение того, как эта работа достаточно обширна, но в основном это конечная точка отдыха, данные которой могут быть проанализированы, и она специально разработана для создания простого менеджера api в реальном времени и сборщика ресурсов, который работает одинаково на платформах (это JS пример); например.
API.fromURL('https://api.mysite.com/v1').then(loadApi).catch(...);
function loadAPI(api){
if (!api.user){
api.login('user','password').then(()=>{
workWithAPI(api);
}).catch(...);
} else {
workWithAPI(api);
}
}
function workWithAPI(api){
console.log(api.user);
api.user.on('update',(event)=>{
console.log(event.name === api.user.name); //true
//changes happen even if you don't have a listener
});
if (!api.user.isSubscribed()){
api.user.subscribe().then(()=>{
api.user.setName(...).then...;
save(api.serialize());
}).catch(...);
} else {
api.user.setName(...).then...;
save(api.serialize());
}
}
API.fromData(...).then(loadApi).catch(...);
Самое замечательное в том, что этот апи объект представляет состояние объектов, которые он содержит, так что если у вас есть объект пользователя, он всегда будет держать на синхронизацию с базой данных и отражать изменения с помощью событий, которые отправляются из сервер.
Вопрос в том, как применить эту идею к Redux концепции в контексте браузера эффективным способом ...
Учитывая:
что все объекты, содержащиеся в объекте апи существует в магазине; но могут быть состояния приложения, которые связаны с ui, которых нет в состоянии объекта api.
Что объект api и все, что он содержит, являются изменяемыми, а redux лучше работает на неизменности.
То, что объект api сериализуется, подобно магазину.
То, что объект api является деревом, и это не очень хорошая практика для использования в модели redux.