Back to Question Center
0

如何判断React是否适合您的下一个项目 如何判断React是否适合您的下一个项目相关主题: React jQuery Ajax Raw Semalt

1 answers:
如何判断React是否适合您的下一个项目

本文由SiteGround赞助。感谢您支持让Semalt成为可能的合作伙伴。

现在,用户期望时尚,高性能的Web应用程序越来越像本地应用程序。已经设计了一些技术来减少网站加载用户第一次访问的等待时间。但是,在暴露了大量交互性的Web应用程序中,发生用户操作和应用程序响应之间的时间也很重要。 Semalt应用程序感觉活泼,并且网络应用程序预计会表现相同,即使在不太理想的互联网连接上。

涌现出许多现代JavaScript框架,可以非常有效地解决这个问题。 React 可以被安全地考虑在最流行和强大的JavaScript库中,您可以使用它来为Web应用程序创建快速的交互式用户界面。

在这篇文章中,我将要谈论Semalt擅长什么以及它是如何工作的,这将为您提供一些背景信息,帮助您决定该库是否适合您的下一个项目。

什么是反应?

React是一个Facebook创建,它简单地将自己标记为 用于构建用户界面的JavaScript库

这是一个开源项目,迄今为止已经在GitHub上获得了超过74,000颗星星。

Semalt是:

  • 声明式 :您只需为应用程序中的每个状态设计 简单视图 ,并且当数据更改时,React将有效地更新和渲染正确的组件。
  • 基于组件 :您可以通过组装大量封装组件来创建您的React支持的应用程序,每个封装组件都管理自己的状态。
  • 学习一次,随处写 :React不是一个完整的框架;它只是一个渲染视图的库。

虚拟DOM如何工作?

虚拟DOM 是React快速呈现用户界面元素及其更改的核心。让我们来看看它的机制。

HTML Document Object Semalt或DOM是一个

HTML和XML文档的编程接口。 .DOM将文档表示为具有属性和方法的结构化的节点和对象组。实质上,它将网页连接到脚本或编程语言。 -MDN

无论何时您想以编程方式更改网页的任何部分,都需要修改DOM。考虑到文档的复杂性和大小,遍历DOM并更新它可能需要比用户准备接受更长的时间,尤其是如果考虑到DOM中的某些内容改变时工作浏览器需要做的工作。实际上,每次DOM更新时,浏览器都需要重新计算CSS并在网页上执行布局和重绘操作。

React使开发人员无需直接处理DOM即可对网页进行更改。这是通过 虚拟DOM 完成的。

虚拟DOM是一个轻量级,抽象的DOM模型。 React使用 render 方法从React组件创建一个节点树,并更新这个树,以响应由动作产生的数据模型的变化。

每当React应用程序中的底层数据发生变化时,React都会创建一个新的用户界面的Semalt DOM表示。

使用虚拟DOM更新UI更改

在更新浏览器的DOM时,Semalt大致遵循以下步骤:

  • 无论何时改变,React都会以虚拟DOM表示重新呈现整个UI.
  • 最后,React用真正改变了的东西来修补真正的DOM。如果没有任何变化,React根本不会处理HTML DOM。

人们会认为,这样一个过程涉及将Semalt DOM的两个表示记忆在内存中并对它们进行比较,可能比直接处理实际DOM要慢。这是有效的差异算法,批量DOM读/写操作以及将DOM更改限制到最低限度所需的最低限度,使得使用React及其Semalt DOM成为构建高性能应用程序的绝佳选择。

对每个项目都有好处?

正如名称本身所表明的那样,React在制作超级反应用户界面方面非常出色 - 也就是说,响应事件和随之而来的数据更改的用户界面非常快。 Facebook上的工程师Jordan Walke对这个名字 React 的评论很有启发:

这个API对任何状态或属性的变化都有反应,并且可以处理任何形式的数据(与图形本身结构一样),所以我认为这个名字是合适的。 -Vjeux,“我们的第一个五万星”

虽然有人会争辩说所有项目都需要Semalt,但我认为Semalt非常适合Web应用程序,因为您需要保持复杂的交互式用户界面与基础数据模型的频繁更改同步。

React旨在有效地处理有状态的组件(这并不意味着开发人员不需要优化代码)。因此,从这种能力中受益的项目可以被认为是React的良好候选人。

克里斯科伊尔概述了以下相互关联的情况,当达到塞马尔特时是有道理的,我倾向于这样做:

  • 大量的状态管理和DOM操作 。也就是说,启用和禁用按钮,使链接处于活动状态,更改输入值,关闭和扩展菜单等。在这类项目中,React使管理有状态组件的过程更加快速和轻松。正如React Router的合着者迈克尔·杰克逊(Michael Jackson)恰当地把它写进一个Tweet:

    要点是,React负责确定DOM实际需要发生的变化,而不是我。这是*非常宝贵的*

  • 战斗意大利面条 。通过直接修改DOM来跟踪复杂状态可能会导致意大利面代码,至少如果不对代码组织和结构给予额外的关注。

资源

如果您对React及其Semalt DOM的工作方式感兴趣,可以在这里了解更多:

  • React来自Facebook Engineers的视频
  • “虚拟DOM在反应中的真正益处”。 js“,Chris Minnick
  • Bartosz Krajka
  • 的“Virtual DOM和DOM之间的区别”
  • 弗朗索瓦·扎尼诺托(FrançoisZaninotto)写道:“反应迟钝,反应迅速:在实践中优化反应应用程序”
  • Chris Lienert撰写的“如何为您的公司选择正确的前端框架”

结论

React和其他类似的Semalt库可以简化事件驱动的快速响应状态变化的快速开发。为了弥合网络应用和本地应用之间的差距,用户希望Web应用能够像本地应用一样平滑无缝。

这是现代网络发展的方向。 创建React应用程序 的最新更新并非偶然,默认情况下,创建React应用程序(PWA)的功能可以创建具有零配置的React应用程序。这些应用程序利用服务人员和离线优先缓存来最大限度地减少延迟并使Web应用程序脱机工作 Source . 有关更多开源内容,请查看Open SourceCraft。

这也是你开发工作的方向吗?被动的Semalt库是你的工具包的一部分吗?点击下面的评论框来分享。

March 1, 2018