Абрамов в одном из роликов по редаксу демонстрировал, как переместить селекторы к редюсерам. Очевидно, с целью сконцентрировать бизнес-логику в одном месте.
Мопед не мой, статья — конспект подкаста ради фидбека. Я же иду по стопам Твиттера, они сначала все хранили в сторе редакса, и потом только в рамках оптимизации вынесли состояния в локальный стейт компонентов, там где это потребовалось.
function doHomework(subject) {
return new Promise(async function (resolve) {
alert(`Starting my ${subject} homework.`);
await resolve();
alert('Stop');
});
}
doHomework('math').then(alert('Finished my homework'));
function doHomework(subject, callback) {
alert(`Starting my ${subject} homework.`);
callback();
alert('Stop');
}
function alertFinished(){
alert('Finished my homework');
}
doHomework('math', alertFinished);
к промисам:
function doHomework(subject) {
return new Promise(function(resolve) {
alert(`Starting my ${subject} homework.`);
resolve();
alert('Stop');
});
}
doHomework('math').then(alert('Finished my homework'));
ожидаю выполнение alert('Stop') после alert('Finished my homework')
тынц
Можно же переложить локальный стейт в стор редакса, и не будет изначальной проблемы.
Кстати, до меня дошло, что это просто функция redux-thunk, если немного подправить:
Абрамов в одном из роликов по редаксу демонстрировал, как переместить селекторы к редюсерам. Очевидно, с целью сконцентрировать бизнес-логику в одном месте.
Мопед не мой, статья — конспект подкаста ради фидбека. Я же иду по стопам Твиттера, они сначала все хранили в сторе редакса, и потом только в рамках оптимизации вынесли состояния в локальный стейт компонентов, там где это потребовалось.
Я пока храню всё в сторе, игнорируя существование локального стейта компонентов, тупо для упрощения разработки.
в redux-act есть такая удобная штука — batch
Тут можно поспорить, я уже такого нагородил в componentDidMount :)
И в Next.JS у компонентов есть асинхронный getInitialProps.
Пример выноса общего кода на redux-thunk:
Можно попробовать — тынц
fixed-data-table by Facebook — достойный вариант
Так ведь экшены с сайд-эффектами — это и есть абстракция над способом получения данных.
Просто диспатчим экшен, а откуда придут данные — не наша печаль.
Интересно посмотреть, насколько будет больше кода в CRUD.
Мой более жирный пример применения React-Router V4 для CRUD — тынц.
Почитайте такое и такое
Победил подключение стилей в Helmet после его рендеринга!
Всё равно оно неправильно работает (ожидаю выполнение alert('Stop') после alert('Finished my homework'))
Да, какую-то фигню сморозил. Идея была в том, чтобы сделать код синхронным.
вот как можно обойти:
как преобразовать callback:
к промисам:
ожидаю выполнение alert('Stop') после alert('Finished my homework')
почему работает наоборот?
Очень даже в тему, таблица — полный фарш!