本文小编为大家详细介绍“Redux面试题及答案有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Redux面试题及答案有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
1、Redux是什么?
Redux是当今市场上最热门的前端开发库之一。
它是JavaScript应用程序的可预测状态容器,用于整个应用程序的状态管理。
使用Redux开发的应用程序易于测试,可以在不同的环境中运行,表现出一致的行为。
2、Redux遵循的三个原则是什么?
单个事实来源:整个应用程序的状态存储在单个存储中的对象/状态树中。
单状态树使跟踪随时间的变化和调试或检查应用程序变得更容易。
状态是只读的:更改状态的惟一方法是触发一个动作。
一个动作是一个普通的JS对象,用来描述变化。
就像state是数据的最小表示一样,action是数据更改的最小表示。
使用纯函数进行更改:为了指定如何通过操作转换。
3、Redux的中间件
中间件提供第三方插件的模式,自定义拦截action -> reducer 的过程。变为 action -> middlewares -> reducer。这种机制可以让我们改变数据流,实现如异步 action ,action 过滤,日志输出,异常报告等功能。
常见的中间件:
Redux-logger:提供日志输出
Redux-thunk:处理异步操作
Redux-promise:处理异步操作,actionCreator的返回值是promise
4、Redux有什么缺点?
一个组件所需要的数据,必须由父组件传过来,而不能像flux中直接从store取。
当一个组件相关数据更新时,即使父组件不需要用到这个组件,父组件还是会重新render,可能会有效率影响,或者需要写复杂的shouldComponentUpdate进行判断。
5、你如何理解“单一数据源”?
Redux使用“Store”将应用程序的整个状态存储在一个地方。
因此,所有组件的状态都存储在存储中,它们从存储本身接收更新。
单状态树使跟踪随时间的变化和调试或检查应用程序变得更容易。
6、列出Redux的组件
Redux由以下组件组成:
Action—它是一个描述所发生事情的对象。
它是一个决定状态如何变化的地方。
存储—整个应用程序的状态/对象树保存在存储中。
视图——简单地显示存储提供的数据。
8、如何在Redux中定义操作?
React中的操作必须具有type属性,该属性指示正在执行的操作的类型。
它们必须被定义为一个字符串常量,你还可以向它添加更多的属性。
在Redux中,操作是使用名为Action creator的函数创建的。
9、解析Reducer的作用
Reducer是纯函数,它指定应用程序的状态如何随操作的变化而变化。
reduce通过获取以前的状态和动作来工作,然后返回一个新的状态。
它根据操作的类型确定需要执行哪种类型的更新,然后返回新值。
如果不需要做任何工作,它将返回以前的状态。
10、Store存储在Redux中的意义是什么?
存储是一个JavaScript对象,它可以保存应用程序的状态,并提供一些帮助方法来访问状态、分派操作和注册侦听器。
应用程序的整个状态/对象树保存在单个存储中。
因此,Redux非常简单和可预测。
我们可以将中间件传递给存储来处理数据,以及保存更改存储状态的各种操作的日志。所有操作都通过reduce返回一个新的状态。
11、Redux的优点是什么?
Redux的优势如下:
结果的可预测性——因为总是有一个真实的来源,即存储,所以对于如何将当前状态与操作和应用程序的其他部分同步,没有混淆。
可维护性——通过可预测的结果和严格的结构,代码变得更容易维护。
服务器端呈现—只需将在服务器上创建的存储传递到客户端。
这对于初始渲染非常有用,并提供了更好的用户体验,因为它优化了应用程序的性能。
开发人员工具——从操作到状态更改,开发人员可以实时跟踪应用程序中发生的所有事情。
社区和生态系统——Redux背后有一个巨大的社区,这使得它更容易使用。
一个庞大的人才社区为图书馆的改善和开发各种应用作出了贡献。
易于测试——Redux的代码主要是小的、纯的和隔离的函数。
这使得代码可测试且独立。
组织——Redux精确地定义了代码的组织方式,这使得代码在团队使用时更加一致和简单。
12、Redux有什么好处?
Maintain ability, 由于代码风格要求比较严格,所以可维护性比较强。
Organization, 代码的组织性比较好, 这样实际上做工作的时候相对容易。
Server rendering. 服务器端创建的store会转发到客户端。
Developer tools. 方便而强大的开发者工具为调试和实时的开发提供了便利。
Ease of testing. 小函数,基本上只用来做一件事情,这使得整个测试变得非常简单。
13、Redux跟mvc和flux有什么区别?
先说一下mvc,mvc把整个应用分成数据层,表示层和逻辑层。当数据变化比较多的时候,系统变得会比较复杂,调试就需要更多的经验。再说一下flux。Flux跟Redux比较接近。通过event subscription来管理数据的变化。回调加载机制跟Redux比较接近。
读到这里,这篇“Redux面试题及答案有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。