1、MVC框架的主要问题是什么?

以下是MVC框架的一些主要问题:
DOM操作非常昂贵
应用程序运行缓慢,效率低下
有巨大的内存损耗
由于循环依赖关系,围绕模型和视图创建了一个复杂的模型

2、解释Flux

Flux是一种强制单向数据流的架构模式。
它控制派生的数据,并使用具有所有数据权限的中央存储来支持多个组件之间的通信。整个应用程序中的任何数据更新都必须只在这里发生,Flux为应用程序提供了稳定性,减少了运行时错误。
redux和flux是什么? - 图1

3、Redux是什么?

Redux是当今市场上最热门的前端开发库之一。

它是JavaScript应用程序的可预测状态容器,用于整个应用程序的状态管理。
使用Redux开发的应用程序易于测试,可以在不同的环境中运行,表现出一致的行为。

4、Redux遵循的三个原则是什么?

单个事实来源:整个应用程序的状态存储在单个存储中的对象/状态树中。
单状态树使跟踪随时间的变化和调试或检查应用程序变得更容易。
状态是只读的:更改状态的惟一方法是触发一个动作。
一个动作是一个普通的JS对象,用来描述变化。
就像state是数据的最小表示一样,action是数据更改的最小表示。
使用纯函数进行更改:为了指定如何通过操作转换状态树,需要使用纯函数。
纯函数是那些返回值仅依赖于其参数值的函数。

5、你如何理解“单一数据源”?

Redux使用“Store”将应用程序的整个状态存储在一个地方。
因此,所有组件的状态都存储在存储中,它们从存储本身接收更新。
单状态树使跟踪随时间的变化和调试或检查应用程序变得更容易。

6、列出Redux的组件。

Redux由以下组件组成:
Action—它是一个描述所发生事情的对象。
它是一个决定状态如何变化的地方。
存储—整个应用程序的状态/对象树保存在存储中。
视图——简单地显示存储提供的数据。

7、如何通过Redux显示数据?

redux和flux是什么? - 图2

8、如何在Redux中定义操作?

React中的操作必须具有type属性,该属性指示正在执行的操作的类型。
它们必须被定义为一个字符串常量,你还可以向它添加更多的属性。
在Redux中,操作是使用名为Action creator的函数创建的。
下面是Action和Action Creator的例子:

  1. function addTodo(text) {
  2. return {
  3. type: ADD_TODO,
  4. text
  5. }
  6. }

9、解析Reducer的作用。

Reducer是纯函数,它指定应用程序的状态如何随操作的变化而变化。
reduce通过获取以前的状态和动作来工作,然后返回一个新的状态。
它根据操作的类型确定需要执行哪种类型的更新,然后返回新值。
如果不需要做任何工作,它将返回以前的状态。

10、Store存储在Redux中的意义是什么?

存储是一个JavaScript对象,它可以保存应用程序的状态,并提供一些帮助方法来访问状态、分派操作和注册侦听器。
应用程序的整个状态/对象树保存在单个存储中。
因此,Redux非常简单和可预测。
我们可以将中间件传递给存储来处理数据,以及保存更改存储状态的各种操作的日志。所有操作都通过reduce返回一个新的状态。

11、Redux和Flux有什么不同?

Flux Redux
Store包含状态和更改逻辑 Store和更改逻辑是分开的
有多个Store 只有一个Store
所有的Store都是单元化的 带有层次reducer的单一存储
有单例调度程序 没有dispatcher的概念
React组件订阅该Store 容器组件使用connect
状态是可变的 状态不可变

12、Redux的优点是什么?

Redux的优势如下:
结果的可预测性——因为总是有一个真实的来源,即存储,所以对于如何将当前状态与操作和应用程序的其他部分同步,没有混淆。
可维护性——通过可预测的结果和严格的结构,代码变得更容易维护。
服务器端呈现—只需将在服务器上创建的存储传递到客户端。
这对于初始渲染非常有用,并提供了更好的用户体验,因为它优化了应用程序的性能。
开发人员工具——从操作到状态更改,开发人员可以实时跟踪应用程序中发生的所有事情。
社区和生态系统——Redux背后有一个巨大的社区,这使得它更容易使用。
一个庞大的人才社区为图书馆的改善和开发各种应用作出了贡献。
易于测试——Redux的代码主要是小的、纯的和隔离的函数。
这使得代码可测试且独立。
组织——Redux精确地定义了代码的组织方式,这使得代码在团队使用时更加一致和简单。
反应路由器-反应面试问题