玄说前端面试层层提问—关于 redux 的面试题解答

 此篇文章为redux系列最后一篇文章

上一篇关于 redux 源码解析,强烈推荐大家看一下,之前的文章如下:

玄说前端面试层层提问—关于 redux 的面试题

玄说前端面试层层提问—关于 redux 的源码

玄说前端面试层层提问—关于 redux 的面试题解答

上一篇文章中咱们对于 redux 源码做了分析,再此基础之上,我们来分析第一篇文章中的面试题;上篇文章中加群探讨

 

今日试题——redux解析

1|介绍 Redux 数据流的流程;

   

这道题如果看了第二篇文章中的源码,就应该知道这个流程,还是上图更为妥帖!  玄说前端面试层层提问—关于 redux 的面试题解答  首先用户发出 action,经过中间件,到达 Reducer,通过 Reducer 处理后返回新的 State。state 一旦发生变化,store 就会调用监听函数,触发 UI 更新

2|Redux 如何实现多个组件之间的通信,多个组件使用相同状态如何进行管理

   

在上一篇文章中的源码中,所有的数据全部最后都会在一个 state 数上面,实现多组件通信,就需要实现,一份数据多组件能够接收,同时组件之间发出的 action,最后需要通信的组件可以接收他的 state,明白了上一题的数据流模型和 redux 源码,这道题的问题不大

3|使用过的 Redux 中间件

   

上篇文章中,介绍了中间件是对 dispatch 的一种扩展,平时使用的中间件一般日志记录、异步数据请求等等都是对于在 dispatch 上做的一层扩展

4|介绍 redux,主要解决什么问题

   

redux 的作用主要就是管理数据。怎么管理,请参考第二篇文章

5|redux 请求中间件如何处理并发

   

对于中间件不熟悉的,可以详细阅读以下redux源码那篇文章!

请求中间件也是在 dispatch 上做的扩展。

对于请求这种异步的中间件,我们来具体梳理一下他的流程,当我们点击某个按钮有发起请求的需求时,发出一个请求 action,reducer 相应之后,state 更新,触发 view 更新,更新为请求中,在请求完成之后,需要接收一个更新完成的 state 来更新 view,这个 state 的所触发的 action 需要在请求完成的时候发出来。

那么这个请求怎么知道完成后要发出哪个 action 呢?这就需要在发出请求的 action 时候,就把请求结束的 action 传入。 明白了异步中间件需要处理的事情之后,对于并发而言就不用担心了,多个请求 action 同时发出,各自请求结束之后的 action 也就传入了,相互不影响。

6|Redux 中异步的请求怎么处理

   

异步分为请求、代码层面的 IO 或者延时,相差不大,参考上一题的解析

7|Redux 中间件是什么东西,接受几个参数

   

中间件是对于 dispatch 的扩展,具体请参考上一篇文章Redux 源码

8|redux 的设计思想

   

Redux 的主要作用是管理程序状态的,所有数据流全部是单项的,可预测的,这样的程序会变得更加可控

9| 接入 redux 的过程

   

redux 只是一个数据状态管理器,要接入 redux,需要处理发送 action 端,接受数据的变化的监听,对于不同的 UI 框架,都可以接入 redux,react 有 react-redux 帮助接入,有兴趣的可以下来研究研究源码;

10|Redux 有没有做过封装

   

这个大家有兴趣的可以看看阿里的 DvaJS 里面的处理

11|Redux 中哪些功能用到了哪些设计模式

   

在上一篇源码中。出现了订阅发布的设计模式。很多源码中也是纯函数,这就涉及到函数式编程了,后面咱们有机会再分析这块的东西

12|Redux 状态管理器和变量挂载到 window 中有什么区别

   

redux 的 state 需要改变,只能通过 reducer,要触发 reducer,就需要触发相应的 action,所以 redux 里面的数据更改入口只有 action,数据流是单项的。window 上所挂载的数据可以任意修改,无限制,这样的程序,会变得非常不可控

13|介绍下 redux 整个流程原理

 

参考第一问,强烈推荐看redux源码这篇文章

14|redux 状态树的管理

   

参考第一问,强烈推荐看redux源码这篇文章

15|Redux 数据回溯设计思路

   

数据回溯就是查看之前的数据,在 redux 当中,约定通过 reducer 所修改的都是生成的新数据,并不是在原有的数据上做修改,这就是可以做数据回溯的原因,每一次的 state 记录到队列中,回溯的时候根据队里回溯就好。

16|聊 Redux 相关的异步中间件的区别,比如:redux-saga、

redux-thunk

   

前面已经聊过了异步中间件的原理,而不同的框架内部的机制也有不同的地方,限于篇幅原因我们找了一个比较好的资料,大家可以查看原文阅读

感慨一番:今日看见了凉山大火,30名人员付出性命,科技的发展能否替代这些需要抱着献出生命危险的工作。这需要我们年轻一代的不断努力,不仅限于前端,更好的奉献社会;

如果你没离开,依然会,带吴钩,巡万里关山。

多希望你只是小憩,醉一下再挑灯看剑,梦一回再吹角连营。

一路走好,英雄们!!!!

玄说前端面试层层提问—关于 redux 的面试题解答

玄说前端面试层层提问—关于 redux 的面试题解答

玄说前端面试层层提问—关于 redux 的面试题解答

END

获得更多信息

关注公众号

玄说前端面试层层提问—关于 redux 的面试题解答

玄说前端面试层层提问—关于 redux 的面试题解答