redux 本来就是 flux 的特殊情况,同样单向的数据流动,属于 react 生态环境的一部分。不然为啥 jquery 的时候没诞生 redux,最多只搞出了饱受诟病的 ng1?1985年微软就搞出来 excel 了,为啥直到 react 大家才意识到 declarative ui 才是正确的?
后面的不管 vue 还是 svelte,本质上都在用更符合人直觉的方式来组织数据,或者说,使用 procedural programming 替代 react 的 fp。我还是那句老话,数据的单向流动简化了逻辑,减少了业务逻辑的复杂度。算法和数据结构等等的核心思想,都是把复杂的问题简单化,而在这点上 fp 是做到了极致的。你要看不出来的话我也真没啥办法解释,就跟很多人不觉得 declarative ui 不比传统的 imperative ui 有优势一样,也一样举出前者各种的毛病,后者的问题也一样可以解释成,缺乏良好的架构约束。
另外,我不了解 ng2+,了解仅限于 rxjs 火了的很大一部分原因是由于它。如果设计相当于是 multiple stores 的话,那我可以肯定是比 single store 更糟糕的。因为又回到了起点,没有 single source of truth 了。在多个 stores 之间发生基于同一个源的数据交换的时候,是很难确定哪个 store 里的数据才是应该更新的。虽然可能更符合人的直觉,但比单源系统复杂多了。
【 在 beep (菜M.喵星耗子) 的大作中提到: 】
: 你说的react-redux整体方案的可维护性优势是存在的,但是我觉得你夸大了react的作用。这个优势主要是redux带来的。我们可以看到大量的react项目,业务逻辑也都是写在组件里面的,在组件里搞一大堆数据存取和计算,然后在组件里setState。这种玩法照样不可能带来任何好的
: vue生态在这方面基本是没什么建树的。ng在这方面的做法我觉得反而更靠谱些,就是引导大家把业务逻辑集中到service里,然后把可测性目标聚焦在service的设计上。不像redux,service不是全局单例的,是每一个组件都可以new的(其实是通过di系统注入的)。这就更合理一些。
: 我认为试图利用react vue ng这样的框架或者ui库来推行好的架构,本身就不彻底。前端在这方面和后端没啥区别,好的做法依然是靠架构规范来保证,而不是靠库来保证。
: ...................
--
FROM 122.57.163.*