深入理解 Flux 架构中的不可变数据
1. 不可变数据的引入与问题
在 Flux 架构中,不可变数据为单向数据流提供了一定程度的保障,但同时也带来了成本。例如,以下代码展示了尝试修改冻结对象属性时的错误:
try {
frozenState.third = 3;
} catch (err) {
console.error(err);
// →
// TypeError: Can't add property third, object is
// not extensible
}
当 change 事件触发时,不同方式处理状态数据会有不同表现:
copy.on('change', (state) => {
console.assert(state !== copyState, 'copy same');
console.assert(state.fourth, 'copy missing fourth');
});
constant.on('change', (state) => {
console.assert(state !== constantState, 'constant same');
// → Assertion failed: constant same
console.assert(state.fourth, 'constant missing fourth');
});
frozen.on('change',
超级会员免费看
订阅专栏 解锁全文
9

被折叠的 条评论
为什么被折叠?



