一、React的应用场景
React应用广泛,可以进行前端应用开发,如Facebook、Instagram;移动原生应用开发,如Instagram、Discord、Oculus;还可以结合Electron进行桌面应用开发。
二、React框架的设计思路
通过苹果手机购物页面举例,每当用户点击选项时,手机当前价格都有可能发生改变。使用原生Javascript会产生当状态更新,而UI不会自动更新,需要手动地调用DOM进行更新;JS本身欠缺基本的代码层面的封装和隔离,代码层面没有组件之间的数据依赖关系;UI之间的数据依赖关系需要手动维护,如果依赖链路长,则会遇到"Callback Hell'"等问题。
转换式系统不等于响应式系统,前端界面不需要通过输入求解输出,而是监听事件,消息驱动。前端UI可以概括为,事件发生后,执行既定的回调,从而进行状态变更,UI更新。因此对React产生的期望是:状态更新时,UI自动更新;前端代码组件化,具备可以复用和封装的能力;状态之间的互相依赖关系不需要手动维护,而只需要声明即可。
三、React的组件化
总结React的组件化:组件是组件的组合或者原子组件;组件内部拥有自己的状态,外部不可见;父组件可以将状态传入组件内部,控制组件。
React是单项数据流,但子组件可以改变父组件的状态。组件声明了状态和UI的映射,组件有Props和State两种状态,组件可以由其他组件拼装而成。组件内部拥有私有状态State,组件接受外部的Props状态提供复用性,根据当前的States或Props返回一个UI。
通过本节课的学习我简单了解了React这一响应式编程,其与我们最初学习的转换式系统有所不同,更加强调事件和结果的实时性。