React历史与应用React是一个JavaScript库React:一个用于构建用户界面的JavaScript库。——JordanWalke应用场景:前端应用开发,如Facebook、Instagram、Netflex网页版移动原生应用开发,如Instagram、Discord、Oculus结合Electron进行桌面应用开发3D开发:react-3的历史-fiberReact2010年:Facebook在其php生态中引入了xhp框架,并首次引入组合组件的思想,启发了后来React的设计2011年:JordanWalke创建了FaxJS,也就是后来的React原型2012年:Facebook收购Instagram后,内部使用FaxJS项目,JordanWalke基于FaxJS经验创建React2013年:React正式开源,JordanWalke在JSConf2013上介绍了这个全新的框架2014年:生态爆发,各种新工具/框架围绕React开始出现React的设计思想NativeJavaScriptUI编程痛点Status更新,UI不会自动更新,n需要手动调用DOM进行更新。缺乏基本代码级别的封装和隔离。代码层面没有组件化的UI。UI之间的数据依赖关系需要手动维护。如果依赖链接太长,会造成回调地狱CallbackHell响应和转换Transformationalsystem:给定输入解决输出,比如编译器,数值计算Responsivesystem:监听事件,消息驱动,比如监控系统,UI界面响应式系统事件->执行预定回调->状态变化响应式前端UI编程:事件->执行预定回调->状态变化->UI更新React响应式编程特点状态更新,UI自动更新前端代码可以封装组件化、可重用性、状态之间的相互依赖,只需声明Componentizable组件是组件/原子组件的组合。组件具有外部不可见的内部状态。父组件可以将状态传递到组件中。单向号码按照流程,始终是父组件传递状态给子组件,子组件只能调用函数改变状态使用redux等状态管理库解决状态提升不合理的问题Howto修改DOM:将JSX文件转换为JS文件,使用虚拟DOM树和diff算法更新DOM组件设计组件声明状态和UI映射组件有props和state两个状态组件可以从其他组件组装特点:组件有私有状态statecomponentsacceptexternalpropsstates提供复用根据当前的state和props,返回一个UIReactHooks。最常用的两个Hooks是useState和useEffectuseState:传入一个初始值,返回一个状态,设置状态的功能。用户可以调用该函数实现状态修改importReact,{useState}from'react';const示例=()=>{const[count,setCount]=useState(0);return(
你点击了{count}次
你点击了{count}次