React(第2版)引领未来的用户界面开发框架

c#小王子 c#小王子 2021-08-02 871 React


React(第2版)引领未来的用户界面开发框架


内容简介


Facebook的开源框架React.js,基于Virtual DOM重新定义了用户界面的开发方式,彻底革新了大家对前端框架的认识,将PHP风格的开发方式迁移到客户端应用开发。其优势在于可以与各种类库、框架搭配使用。本书由多位一线专家精心撰写,采用全程实例介绍和剖析了React.js的方方面面,适合广大前端开发者、设计人员,以及所有对未来技术趋势感兴趣者阅读。本书前版作为React首作推出之后,React生态继续蓬勃发展,技术及社区都在不断推陈出新。本书诸位专家作者适时推出新版,全面更新示例,用ES6重写代码,摒弃社区弃用范式,新增无状态组件、不可变数据、Redux等热点内容。阅读本书,不但可以夯实React开发基础,更能全方位紧跟整个React生态!


前言


React是什么,为什么要使用它


React是Facebook内部的一个JavaScript类库,已于2013年开源,可用于创建web用户交互界面。它引入了一种新的方式来处理浏览器 DOM。那些需要手动更新DOM、费力地记录每一个状态的日子一去不复返了——这种老旧的方式既不具备扩展性,又很难加入新的功能,就算可以,也是冒着很大的风险。React使用很新颖的方式解决了这些问题。你只需声明式地定义各个时间点的用户界面,而无须关心在数据变化时需要更新哪一部分DOM。在任何时间点,React都能够以最小的 DOM修改来更新整个应用程序。


本书内容


React引入了一些激动人心的新概念,向现有的一些最佳实践发起了挑战。本书将会带领你学习这些概念,帮助你理解它们的优势,创建具备高扩展性的单页面应用(SPA)。

React把主要的注意力放在了应用的"视图"部分,没有限定与服务端交互和代码组织的方式。在本书中,我们将介绍目前的一些最佳实践及配套工具,帮助你使用React构建一个完整的应用。


第1章 React简介


背景介绍


在Web开发的早期,前端代码量不大,也不够强大。得益于近几年来浏览器厂商之间你追我赶式的竞争,JavaScript的性能得到了极大的提升,现如今web应用能够提供的用户体验可以与原生应用比肩。随着 web应用的不断丰富和生机勃勃的发展,JavaScript在可扩展和高性能方面提出了前所未有的挑战。


从历史上看,很多JavaScript类库会把性能或者代码架构放在第一的位置——提供简单的方式可以高效地操作DOM,或者提供架构模式使得代码更容易扩展。React一飞冲天,不但实现了高性能,还保证了代码的扩展性。这种强有力的组合使得它跃居为Github前十大流行的类库!


React发源自Facebook的PHP框架XHP的一个分支。XHP作为一个 PHP框架,旨在每次有请求进来时渲染整个页面。React的产生就是为了把这种重新渲染整个页面的PHP式工作流带到客户端应用中来。


React本质上是一个"状态机",可以帮助管理复杂的随着时间而变化的状态。它以一个精简的模型实现了这一点。React只关心两件事∶


1.更新DOM


2. 响应事件


React不处理Ajax、路由和数据存储,也不规定数据组织的方式。它不是一个Model-View-Controller框架。如果非要问它是什么,它就是 MVC里的"V"。React的精简允许你将它集成到各种各样的系统中。事实上,它已经在数个MVC框架中被用来渲染视图了。


在每次状态改变时,使用JavaScript重新渲染整个页面会异常慢,这应该归咎于读取和更新DOM的性能问题。React运用一个虚拟的DOM实现了一个非常强大的渲染系统,在React中对DOM只更新不读取。


React就像高性能的3D游戏引擎,以渲染函数为基础。这些函数读入当前的状态,将其转换为目标页面上的一个虚拟表现。只要React被告知状态有变化,它就会重新运行这些函数,计算出页面的一个新的虚拟表现,接着自动地把结果转换成必要的DOM更新来反映新的表现。


乍一看,这种方式应该比通常的JavaScript方案——按需更新每一个元素——要慢,但React确实是这么做的∶它使用了非常高效的算法,计算出虚拟页面当前版本和新版间的差异,基于这些差异对DOM进行必要的最少更新。


React赢就赢在最小化了重绘,并避免了不必要的DOM操作,这两点都是公认的性能瓶颈。


用户界面越复杂,就越容易发生这样的情况——一个用户交互触发一个更新,而这个更新触发另外一个更新,一个接一个。如果没有恰当地把这些更新放到一起,性能就会大幅度降低。更糟糕的是,有时候 DOM元素在达到最终状态前,会被更新好多次。


React的虚拟表示差异算法,不但能够把这些问题的影响降到最低(通过在单个周期内进行最小的更新),还能简化应用的维护成本。当用户输入或者有其他更新导致状态改变时,我们只要简单地通知React状态改变了,它就能自动化地处理剩下的事情。我们无须深入到详细的过程之中。


React在整个应用中只使用单个事件处理器,并且会把所有的事件委托到这个处理器上。这一点也提升了React的性能,因为如果有很多事件处理器也会导致性能问题。


本书概览


本书将分四个大块进行讲述,帮助你在开发时充分发挥React的优势。


Component的创建和复合


本书的前7章都与React组件的创建和复合相关。这些章节将帮助你搞清楚如何使用React。


1)React简介


React介绍,包括背景介绍及全书概览。


2)JSX的使用和React组件的基础用法



JSX(JavaScript XML)提供了一种在JavaScript中编写声明式的 XML的方法。这一章将学习如何在React中使用JSX,学习如何构建简单的React Component。虽然对React来说JSX不是必需的,但因为这是一种推荐的用法,因此本书的大部分例子,包括示例项目,都会使用JSX。


3)Component的生命周期


在渲染过程中,React会频繁地创建或者销毁组件。React提供了很多可被注入到组件生命周期中的钩子函数。你需要了解并理解如何管理组件的生命周期,避免在应用中产生内存泄漏。


4)数据流


在React中,数据是如何在组件树中从上向下传递的?哪些数据可以修改?搞清楚这些问题是非常重要的。React的props 和state 有明确的区别。这一章将学习props和state是什么,以及怎样在应用中正确地使用它们。


5)事件处理


React的事件处理采用声明的方式。对于交互式的界面,事件处理是非常重要的一部分,也是必须学习并掌握的。还好React提供的事件处理方案非常简单。


6)Component的复合


React鼓励创建小巧且有明确功能的组件来处理特定需求,再在应用中创建复合层来组合使用这些组件。这一章将学习如何在其他组件中使用已有的组件。


7)高阶组件和Mixin


这是一种模式,对数据依赖的一种抽象。高阶组件将普通组件包裹起来,通过props来提供数据或者函数。本章还会介绍mixin,在特定情况下它依然适用。


进阶


一旦掌握了React的基础,就可以继续学习一些高级的主题。接下来的6章有助于进一步打磨React技巧,搞清楚如何创建优秀的React组件。


8)DOM操作


尽管React提供了基于虚拟DOM的各种功能,有时候你还是需要访问应用程序中原生的DOM节点。这样就可以利用现有的一些JavaScript类库,或者可以更加自由地控制你的组件。本章将告诉你在React组件生命周期的哪些节点上可以安全地访问DOM,在什么时候应该释放对 DOM的控制,避免内存泄漏。


9)使用React创建表单


接收用户输入的最佳方式之一就是使用HTML表单。但有一个问题,HTML表单是有状态的。React提供了一种方案,可以把大部分状态从表单移入到React组件中。这为我们提供了对表单元素的不可思议的控制力。


10)动画


作为Web开发者,我们手里已经有了一个声明式且性能强劲的动画工具∶ CSS。React鼓励使用CSS实现动画。本章介绍在React中如何利用CSS给组件添加动画。


11)组件性能优化


React的虚拟DOM虽然创造性地提升了性能,但是性能还有继续提升的空间。React提供了这样一种方式,即当你知道组件没有变化时,可以告诉渲染器无须重新渲染你的组件。通过这种方法可以大幅度地提高应用的速度。


【下载地址】

链接:https://pan.baidu.com/s/1gyfMPeVvgmRmsOuTn7BMBw

提取码:wwba


相关文章


深入浅出React和Redux

希望读者把阅读这本书的过程当做一个旅程,由浅入深地了解 React 和 Redux,如果你对 React 和 Redux 技术已经有一些了解

深入React技术栈

本书从几个维度介绍了React。一是作为 View 库,它怎么实现组件化,以及它背后的实现原理。二是扩展到 Flux 应用架构及重要的衍生品

快速上手React编程

本书旨在解决前端开发者的烦恼,使他们的生活更有意义、更加快乐,并通过介绍 React帮助他们赚到更多的钱——这些会以一种快速的方式进行。本书

从零开始学ReactJS

ReactJS 是 Facebook 推出的 JavaScript 函数库,若以 MVC 框架来看,React 定位是在 View 的范畴。

react状态管理与同构实战

本书以 React 技术栈为核心,在介绍 React 用法的基础上,从源码层面分析了Redux 思想,同时着重介绍了服务端渲染和同构应用的架

react中文入门教程

React 的核心思想是∶ 封装组件。

React与Redux开发实例精解

本书共分四部分,全面介绍如何使用 React与 Redux进行Web 开发。

React学习手册

本书是专门为希望学习React脚本库,同时也希望学习当前JavaScript语言最新特性的开发人员而编写的。

react设计模式和最佳实践

通过介绍 React 中最有价值的设计模式,展示如何将设计模式和最佳实践应用于现实的新项目和已有项目中

React全栈++Redux+Flux+webpa

本书从现代前端开发的标准、趋势和常用工具入手,由此引出了优秀的构建工具 webpack 和 JavaScript库 React,之后用一系列

react快速上手开发完整版

本书是 React 入门书。前 3章介绍如何从空白的 HTML页面开始构建应用。第4章介绍 JSX语法。从第5章开始,你会学习到在实际开发中

React开发实战

React 是由 Facebook 创建的一个开源项目。它提供了一种在 JavaScript 中构建用户界面的全新方式。自从它公开发布后,这

react-router-cn脚本之家

React Router 是完整的 React 路由解决⽅案 React Router 保持 UI 与 URL 同步。它拥有简单的 API

ReactNative移动开发实战

本书以实战为主旨,通过完整的电商类 App 项目实例,来介绍 React Native 中常用的组件、API、布局、第三方组件和原生接口,让

ReactNative实战

Native 有更好的人机交互体验:1. 更丰富细腻的动画效果 2. 更精准的手势识别 3. 原生控件有更好的体验 ;4. 更合适的线程模型


文章热度: 166291
文章数量: 333
推荐阅读

FlashFXP绿色版网盘下载,附激活教程 1839

FlashFxp百度网盘下载链接:https://pan.baidu.com/s/1MBQ5gkZY1TCFY8A7fnZCfQ。FlashFxp是功能强大的FTP工具

Adobe Fireworks CS6 Ansifa绿色精简版网盘下载 1607

firework可以制作精美或是可以闪瞎眼的gif,这在广告领域是需要常用的,还有firework制作下logo,一些原创的图片还是很便捷的,而且fireworks用法简单,配合dw在做网站这一块往往会发挥出很强大的效果。百度网盘下载链接:https://pan.baidu.com/s/1fzIZszfy8VX6VzQBM_bdZQ

navicat for mysql中文绿色版网盘下载 1652

Navicat for Mysql是用于Mysql数据库管理的一款图形化管理软件,非常的便捷和好用,可以方便的增删改查数据库、数据表、字段、支持mysql命令,视图等等。百度网盘下载链接:https://pan.baidu.com/s/1T_tlgxzdQLtDr9TzptoWQw 提取码:y2yq

火车头采集器(旗舰版)绿色版网盘下载 1737

火车头采集器是站长常用的工具,相比于八爪鱼,简洁好用,易于配置。火车头能够轻松的抓取网页内容,并通过自带的工具对内容进行处理。站长圈想要做网站,火车头采集器是必不可少的。百度网盘链接:https://pan.baidu.com/s/1u8wUqS901HgOmucMBBOvEA

Photoshop(CS-2015-2023)绿色中文版软件下载 1858

安装文件清单(共46G)包含Window和Mac OS各个版本的安装包,从cs到cc,从绿色版到破解版,从安装文件激活工具,应有尽有,一次性打包。 Photoshop CC绿色精简版 Photoshop CS6 Mac版 Photoshop CC 2015 32位 Photoshop CC 2015 64位 Photoshop CC 2015 MAC版 Photoshop CC 2017 64位 Adobe Photoshop CC 2018 Adobe_Photoshop_CC_2018 Photoshop CC 2018 Win32 Photoshop CC 2018 Win64

知之

知之平台是全球领先的知识付费平台。提供各个领域的项目实战经验分享,提供优质的行业解决方案信息,来帮助您的工作和学习

使用指南 建议意见 用户协议 友情链接 隐私政策 Powered by NOOU ©2020 知之