@
KuroNekoFan 按楼主的 SICP 的话,数据分层其实就是指 bottom-up 的架构形式(相对地,从交互或者功能着手叫做 top-down )
状态的改变不应当跨层。比如说你有一个底层的 IndexedDB API,你在这基础上搭建了一个 PouchDB,那你不再应该采用 idb 去操作这些数据。在这之上,你构造了一个(经典 demo ) to-do,你也不应当让用户去操作 PouchDB 更别说 idb 了。
hooks 倒可以用来做数据分层(只是一般用来描述局部状态,不需要很多分层),反而 redux 似乎根本没有做数据分层,倒是把所有数据搅作一团任人随意乱窜。BTW,在软件工程领域「银弹」一词的隐喻是「这东西看上去很好,但没有(或者不能)解决实际问题」,更深地隐喻是「这个问题本身无解,所有提出的解基本上非坏即蠢」——类似那个段子:在一个没有猫的黑屋子里找一只黑猫,并大喊「我找到了」。
话说,目前采用这种封装思维的似乎就是 Svelte