1、什么是Redux?
Redux 用于全局的状态管理
2、为什么在React项目中要使用Redux?
因为React是单向数据流的,数据只能从父组件通过props流向子组件,但如果子组件要想修改父组件的值,就只能通过给绑定函数传递参数的形式来修改,一旦项目中数据比较复杂时,这种形式会搞得一团糟,所以需要Redux的协助,帮助其更好的管理项目中复杂的数据问题
3、Redux的三大核心原则?
单一数据源:整个应用的state被存储在reducer中,并且这个reducer只存在于唯一一个store
state是只读的:唯一能改变state的就是action,action是一个用于描述已发生事件的对象,通过store中的dispatch方法来发送action,store.dispatch(action)
使用纯函数(reducer)来执行修改:reducer是一个纯函数,它接受老的state,action,并且返回一个新的state
4、为什么需要redux中间件?
默认情况下,redux只能处理同步数据流。但是实际项目开发中,状态的更新、获取、通常是使用异步操作来实现的。
5、常用的redux中间件有哪些?
redux-thunk:处理异步操作,主要作用就是可以使action可以变成函数形式,接收两个参数dispatch、getState
redux-promise: 处理异步操作
redux-logger:打印日志,主要作用在控制台打印输出新老state等信息
6、Redux有什么缺点?
一个组件所需要的数据,必须由父组件传过来,而不能像flux中直接从store取。 当一个组件相关数据更新时,即使父组件不需要用到这个组件,父组件还是会重新render,可能会有效率影响,或者需要写复杂的shouldComponentUpdate进行判断。
7、 Store存储在Redux中的意义是什么?
store 是一个JavaScript对象,它可以保存应用程序的状态,并提供一些帮助方法来访问状态、分派操作和注册侦听器。
应用程序的整个状态/对象树保存在单个存储中。 因此,Redux非常简单和可预测。我们可以将中间件传递给存储来处理数据,以及保存更改存储状态的各种操作的日志。所有操作都通过reduce返回一个新的状态。
标签:面试题,redux,reducer,action,state,组件,Redux From: https://www.cnblogs.com/gqx-html/p/17368876.html