Рассмотрим стандартный редьюсер:
function reducer(store, action) { ... }
Задача редьюсера при обработке события - сделать копию хранилища, изменив нужные элементы. Ну например:
function reducer(store, action) {
return {...store, myProperty: 123}
}
Копию делать обязательно, иначе redux не сможет сделать сравнение двух хранилищ. Чем сложнее вложенность хранилища - тем "неудобнее" будет код (хотя и рекомендуется делать хранилище линейным, но иногда вложенность нужна).
Почему бы redux'у не сделать копию хранилища перед вызовом редьюсера?
// redux-библиотека
const newStore = {...store};
callReducer(newStore...)
Тогда сам reducer был бы более читаемым (?):
function reducer(store, action) {
store.myProperty = 123;
// легко работать со вложенностью
store.orderList.preferOrder.Id = 1;
}
Есть ли тут какие то соображения - скорость, безопасность, еще что то? Интересно почему сделано именно так, а не иначе.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
На одном из шагов spookyJS/casperJS формируется объект, содержащий текст ссылок
Есть страница, где нужно выделить все ссылки <a> с классом 'foo'Я пытаюсь сделать так: