Flux架构中的可扩展性与不可变存储
1. Flux架构的可扩展性重点
在扩展Flux架构时,重点应放在存储所产生的信息上,而非各种组件。其他架构常通过不断创建和销毁JavaScript组件来释放资源,但这可能会带来错误风险。而Flux架构相对静态,组件生命周期长,无需频繁创建和销毁组件,从而减少了出现问题的可能性。
当扩展架构时,JavaScript组件及其连接并非主要担忧,真正的挑战在于处理大量数据,且进入系统的数据增长速度可能远快于组件数量的增长。此外,处理未使用的存储数据是扩展Flux架构的重要方面,因为这能将未使用的资源返还给浏览器。
2. 不可变存储的概念
不可变数据是指一旦创建就不会改变的数据,这一概念常用于函数式编程。在应用中使用不可变数据的关键好处是可以预测数据变化的根本原因,因为数据不会因副作用而意外改变。不可变性与Flux架构相得益彰,因为它们都强调明确性和可预测性。
然而,不可变性也存在隐藏成本,主要与所需的额外资源有关,这可能导致性能明显下降。同时,可借助Immutable.js库对不可变数据进行转换。
3. 摒弃隐藏更新
Flux的单向数据流特性使其与其他现代前端架构区分开来。新数据只能通过动作创建者进入系统,但Flux并未严格执行这一点,因此一些错误的代码可能会完全破坏架构。
3.1 破坏Flux架构的方式
最容易破坏Flux架构的方式是在未通过正确渠道的情况下修改存储的状态。动作调度器是新数据进入系统的门户,它还协调存储的动作处理程序。如果直接修改存储状态,可能会出现复杂的副作用,且难以预测。
例如
超级会员免费看
订阅专栏 解锁全文
4

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



