当前位置: 首页 > 面试题库 >

React.js中的声明式和命令式之间的区别?

姬宝
2023-03-14
问题内容

最近,我一直在研究有关Facebook
JavaScript库React.js的功能和使用方法。当其差异说话的JavaScript的世界往往是两种编程风格的休息declarativeimperative被mentionned。

两者有什么区别?


问题答案:

声明式的样式(如react所具有的样式)允许您通过说“它看起来像这样”来控制应用程序中的流程和状态。命令式风格可以解决这个问题,并允许您通过说“这是您应该做的”来控制应用程序。

声明式的好处是您不会陷入表示状态的实现细节中。您要委派保持应用程序视图一致的组织组成部分,因此您只需要担心状态。

想象您有一个管家,他是一个框架的隐喻。而且你想做晚饭。在当务之急,您会逐步告诉他们如何做饭。您必须提供以下说明:

Go to the kitchen
Open fridge
Remove chicken from fridge
...
Bring food to the table

在声明性世界中,您只需描述您想要的内容

I want dinner with chicken.

如果您的管家不知道怎么做鸡,那么您就不能以声明式的方式进行操作。就像Backbone不知道如何变异自己来完成某项任务一样,您也不能仅仅告诉它去完成该任务。React之所以具有声明性,是因为它“知道如何制作鸡肉”。与Backbone相比,后者只知道如何与厨房交互。

能够描述状态会大大减少bug的表面积,这是一个好处。另一方面,由于委派或抽象了实现状态的 方式,因此 事情发生的灵活性可能较低。



 类似资料:
  • 问题内容: 策略模式和命令模式有什么区别?我也在寻找Java中的一些示例。 问题答案: 通常,命令模式用于使对象脱离 需要完成的工作 -进行操作及其参数并将其包装在要记录的对象中,以备撤消,发送到远程站点等。随着时间的流逝,它们将往往是大量不同的Command对象,它们会通过系统中的给定点,并且Command对象将包含描述所需操作的各种参数。 另一方面,策略模式用于指定应 该如何做 ,并插入到较大

  • 问题内容: 我有一个问题:这两个声明有什么区别? 是一样的吗? 问题答案: 在可变参数上 方法参数声明中的构造通常称为varargs。在JLS中,它称为 可变arity 参数。 JLS8.4.1格式参数 列表中的最后一个形式参数是特殊的;它可以是 可变 Arity参数,由类型后面的省略号表示。 如果最后一个形式参数是类型的可变arity参数,则考虑定义类型的形式参数。然后,该方法是 可变Arity

  • 我试图在声明性和命令式配置的混合中设置(J)缓存,因为JCache标准没有提供限制缓存可以占用的最大大小的方法。我想尽可能地“独立于提供者”,这样我将来就可以灵活地更改提供者。目前我有使用Java7的限制,所以我相信咖啡因被丢弃了。 我在应用程序中保留了缓存列表和它们条目的持续时间(TTL)。yaml,这是我用属性加载器得到的。然后,我用以下代码创建缓存: 无论我在POM中使用哪个JCache提供

  • 问题内容: “ Prepared Statement”是Statement的稍强版本,并且应始终至少与Statement一样快捷且易于处理。 准备好的语句可能已参数化 大多数关系数据库通过四个步骤来处理JDBC / SQL查询: 解析传入的SQL查询 编译SQL查询 规划/优化数据采集路径 执行优化的查询/获取并返回数据 对于发送到数据库的每个SQL查询,一个Statement将始终执行上述四个步

  • 本文向大家介绍Java中定义和声明之间的区别。,包括了Java中定义和声明之间的区别。的使用技巧和注意事项,需要的朋友参考一下 对于定义和声明之间的区别,应该首先考虑其字面含义,其中包括声明或声明的“声明”方法,而描述某些实体的“定义”方法。 以下是定义和声明之间的重要区别。 序号 键 声明 定义 1 概念 声明的概念包括通知编译器有关变量的属性,例如变量的名称,其持有的值的类型以及初始值(如果有

  • 本文向大家介绍grep和fgrep命令之间的区别,包括了grep和fgrep命令之间的区别的使用技巧和注意事项,需要的朋友参考一下 在任何语言或框架中,最重要和主要的功能之一就是搜索数据。它不仅表示语言的性能,还表示存储数据的方式。因此,特别是如果我们以LINUX操作系统为例,则有两个重要的命令,即grep和fgrep。 这两个命令都用于搜索文件,目录甚至多个文件夹中的任何字符串或正则表达式。这两