1. 使用过 React,前端的 MVC 框架的出现带动了整个前端的发展,现在前端可以和后端分离开来设计与实现,对比之前,前端页面的聚合需要后端,这些框架的出现,在大的层面上看也算是进行了一次前后端的解耦吧;不好的地方就是前端的技术变得非常的多,而且杂,并且很多前端技术的生命周期都很短,这增加了普通工程师的学习难度的同时,前端在技术层面上也没有一个大的 “统一”
2. 这让我回想起了我们之前讲过的一个话题,就是 “MVC 框架的控制逻辑的配置是写在单一的文件中,还是利用注解的方式写在控制逻辑处?”,放在这里也是可以类比的,把行为从 HTML 里面分离出去,单独管理,可以使得行为和 HTML 显示分开,达到解耦,同样,以 Angular 这种方式,让行为跟着具体的 HTML 显示模块走,让行为和 HTML 显示对照起来,这也是解耦,只不过前者是代码横向分层解耦,后者是代码纵向分层解耦,不能完全说哪一个好,还是得具体场景,具体分析。
这里有一个小问题,就是上面提到说 “Reducer 是无状态的,它是一个纯函数”,我们上一篇文章中提到纯函数是安全的,也是幂等的,但是这里 Reducer 是会改变 store 的,而且对一个 Reducer 一次调用和多次调用会导致 store 里面的状态变得不一样,或者说我这里是不是误解了什么,还请老师指教
PS: 过滤器标题下面那句话有 typo,Angular 写成了 React
展开
作者回复: 第2点讲得非常好,👍。
关于你的问题,Reducer返回的是新状态,而不是改变原有状态(新状态会放到这个store里面),这点请注意,你可以参见 https://redux.js.org/basics/reducers#handling-actions。
typo 我已经知会编辑修改,感谢!