大家好,这一次呢,我们来说一下redux的面试题。
第1题, redux有什么好处?
Maintain ability, 由于代码风格要求比较严格,所以可维护性比较强。
Organization, 代码的组织性比较好, 这样实际上做工作的时候相对容易。
Server rendering. 服务器端创建的store会转发到客户端。
Developer tools. 方便而强大的开发者工具为调试和实时的开发提供了便利。
Ease of testing. 小函数,基本上只用来做一件事情,这使得整个测试变得非常简单。
第2题, Redux跟mvc和flux有什么区别?
先说一下mvc,mvc把整个应用分成数据层,表示层和逻辑层。当数据变化比较多的时候,系统变得会比较复杂,调试就需要更多的经验。
再说一下flux。Flux跟redux比较接近。通过event subscription来管理数据的变化。回调加载机制跟redux比较接近。
第3题 说一下功能化编程的概念。
在redux中使用了功能化编程的概念。
在参数中可以传递函数。
使用了数据流控制, 递归调用, 函数和数组等等。
帮助函数, 如reduce和map filter被大量使用。
允许函数的串联。
状态只读。
代码执行顺序的优先级没有必要考虑。
第4题,如何改变状态?
当一个action被执行的时候,我们可以去改变状态。
假设如下流程:
用户点击一个按钮
一个函数会被调用
一个action会被发出给处理容器, 这个容器需要用map dispatch to props来注册这个action。
Reducer会根据action来改变状态。
状态的改变会被处理容器注意到, map state to props。
第5题,redux在哪里使用?
Relax主要用在需要交互性的复杂场景中。可以跟很多框架结合使用, 比如angular, vue, meteor, react。
第6题, 解释一下典型的react 和 redux数据流。
首先是dispatch一个action。
然后reducer会收到这个action, 根据这个action对状态进行修改。
状态修改以后会被处理容器捕捉到。
从而对相关的界面进行更新。
第7题, 什么是redux的store?
Store存放应用程序的状态,并且有帮助函数来访问这些状态。
Store可以用来聆听变化和发送action。
Store只有一个。
你可以创建很多sub stores。
第8题, 解释一下redux里面的reducers。
数据的状态是通过reducer函数来改变的。
第9题, 解释一下redux的工作流特征。
Reset. 允许状态的重置。
Revert. 允许回退最近的一次改变。
Sweep. 那些失效的, 错误的actions,可以被删除。
Commit. 把当前状态提交,作为新的初始状态。
第10题,解释一下redux里面的actions。
Actions代表的是一个对象。有两部分,一个是action本身,另一个就是它的payload。简单说就是对哪些数据进行哪些操作。
码字不易,请关注点赞!