【React】《Why did we build React?》 我们为什么要创建React-译文

时间:2022-07-01 09:25:22

公司在做微信支付项目的时候,用react来写。师父让学习react.js去实现构建中的内容。其实看完构建页面,我自己有一个疑问,这个页面完全可以使用html和javascript就能写,为什么要用react呢?问了一下组长,组长说,主要是为了代码能够复用,很多组件,这个页面用完了之后,接下来如果有相同功能的页面,组件就可以拿来直接用了。

我自己在学习react的时候,也一直在思考这个问题,“我为什么要用react来写”。

《Why did we build React?》这篇文章解释的很清楚,以下为我的翻译,中间也加了一些个人的理解。

为什么我们要设计React?
现在已经有了很多JavaScript的MVC框架,那为什么我们还要创建React并且你们还想要使用它呢?

React并不是一个MVC框架
React是一个让用户能够创建可复用接口的库。它鼓励去创建可复用的UI组件,这些组件能够随着时间的变化来展示数据。
React没有使用模板
通常,web应用UI的创建会用到模板或者HTML指令。这些模板使得你可以使用它们去创建自己的UI。
React则是通过创建组件的方式来创建用户接口。这意味着React用了一种真实的、全特征的程序语言去渲染视图,这让我们认为相较于模板来说,它有如下几点优点:
1. JavaScript是一种灵活的且功能强大的程序语言,它有能力去建立抽象,这在一个大型应用中是非常重要的。
2. 用它自己的视图逻辑去统一你的标签,React让视图的扩展和维持变得更加简单
3. 通过将可理解的标签和内容转换成JavaScript,这使得没有人为的字符串拼接,因此,受到XSS攻击的可能性就很小。


译者注:

XSS:XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的. 比如获取用户的Cookie,导航到恶意网站,携带木马等。


React更新简单
当你的数据会随着时间不断变化的时候,react就派上用场了。
在过去的JavaScript应用中,你需要观察哪部分数据变化了,并且要立即去做一些DOM的操纵去保持数据的更新。即使是Angular JS,也需要一个方法去人工的更新DOM节点。
React用了一种不同的方法。
当你的组件第一次被初始化的时候,render方法被调用,生成一个轻量级的视图场景,在文档中生成一系列的标签。当数据改变时,render方法再次被调用,为了让更新更加有效率,比较此次render方法的返回值与前一次的不同,将有变化的地方在DOM中进行更改。

从render方法中返回的数据,既不是一个字符串也不是一个DOM节点,而是一个关于DOM应该是什么样子的描述。

我们称这个过程为调节。
因为再次渲染的速度非常快,开发者无需进行特定的数据绑定。我们发现这样的方法使得创建APP更加方便。

HTML仅仅是开始
因为React有它自己关于文档的描述,我们可以用它做一些非常酷的事情:

  • Facebook将动态的图表渲染到canvas里而不是html中
  • Instagram用JSX来写React代码
  • 我们建立了内置的属性去运行React app
  • 你可以……

译文结束。