深入理解 React:从根源到应用
一、React 存在的原因
在早期的网络世界中,网页大多是静态的。用户填写表单、点击提交,然后加载一个全新的页面。随着网络技术的发展,用户对网页体验的要求越来越高,希望能即时看到页面的更新,而无需等待新页面的渲染和加载。然而,实现这种即时更新面临着诸多问题:
1. 性能问题 :对网页进行更新时,常常会触发浏览器重新计算页面布局(回流)和重绘页面,从而导致性能瓶颈。
2. 可靠性问题 :在丰富的网页体验中,跟踪和确保状态的一致性是一项艰巨的任务。因为状态需要在多个地方进行跟踪,特别是在多人协作开发同一代码库时,难度更大。
3. 安全问题 :为了防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)等安全漏洞,必须对注入页面的所有 HTML 和 JavaScript 进行清理。
为了更好地理解 React 是如何解决这些问题的,我们先来看看 React 诞生前的网络世界。
二、React 诞生前的网络世界
2.1 按钮交互示例
以一个“点赞”按钮为例,当用户点击按钮时,我们希望更新用户界面以反映按钮已被点击。这个过程涉及到多个状态:
1. 点击前 :按钮处于默认状态,未被点击。
2. 点击但未完成 :按钮已被点击,但按钮应执行的操作尚未完成。
3. 点击成功 :按钮已被点击,且操作已完成。此时可以选择将按钮恢复到点击前的