电商网站的建设与维护,网页案例,定制开发电商网站建设,有没有专门做衣服的网站Redux中reducer 中为什么每次都要返回新的state#xff01;#xff01;#xff01; 最近在学习react相关的知识#xff0c;学习redux的时候遇到看到一个面试题#xff1a; 如果Redux没返回新的数据会怎样#xff1f; 这就是要去纠结为什么编写reducer得时候为什么不允许直… Redux中reducer 中为什么每次都要返回新的state 最近在学习react相关的知识学习redux的时候遇到看到一个面试题 如果Redux没返回新的数据会怎样 这就是要去纠结为什么编写reducer得时候为什么不允许直接修改state而且要返回新的引用。 事实上我去百度得到的答案全是说直接返回会导致state修改后页面不刷新源码中对新旧state做了浅比较。。。 我感觉很奇怪根据我的想法查看源码什么时候去调用reducer也就是你想要更改state的时候会发起dispatch(action) 源码如下 currentReducer在你创建store的时候就直接赋值了而listeners是得到当前所有的订阅事件通过subscribe(listener)方法订阅能引起当前组件刷新的方法然后对listeners遍历调用。不管reducer执行后返回的state是新的引用还是原始引用在这里其实所有的订阅事件都会被调用相关组件也会更新。 总的来说我不敢确定是否自己理解有误如果有请告诉我非常感谢。 根据官方文档的描述感觉更多像是一种默认规则而不是因为UI不刷新所以state才必须返回新引用。 官方文档中的解释cn.redux.js.org