这是我参与「第五届青训营 」伴学笔记创作活动的第6天。
一、本堂课重点内容
- react的历史与应用
- react的设计思路
二、详细知识点介绍
1. react简介
react是在2013年由Facebook推出的开源框架,带来了全新的函数式编程风格。
- react(官网地址:reactjs.org)官方文档如下图所示:
2. react设计思路
- UI编程的痛点
- 状态更新,UI不会自动更新,需要手动地调用DOM进行更新;
- 欠缺基本的代码层面的封装和隔离,代码层面没有组件化;
- UI之间的数据依赖关系需要手动维护,如果以来链路长,则会遇到“Callback Hell”。
- 转换式系统与响应式系统
- 转换式系统:给定输入求解输出,相当于编译器;
- 响应式系统:监听事件,消息驱动,从而状态变更。
- 响应式编程特点
- 状态更新,UI自动更新;
- 前端代码组件化,可复用,可封装;
- 状态之间相互依赖关系只需声明即可。
- react设计——例子分析——组件化
- 对以下页面可以拆分为“顶栏”“橱窗”“型号”“颜色”这四个组件块,如下所示:
- 总结如下:
-
- 组件是组件的组合;
-
- 组件内拥有状态,外部不可见;
-
- 父组件可将状态传入子组件;
- react设计——例子分析——状态归属问题
- 在上述例子中,价格会因为型号选择不同而不同,价格在“顶栏”组件显示,但会因“型号”组件变化,故价格的状态归属于这两个组件节点向上的最近的父结点。
- 价格的改变是子组件调用父组件的函数,再改变价格状态。
- react是单向数据流。
- react设计——组件设计
- 组件声明了状态和UI的映射;
- 组件有Props(接受外部的Props状态)和State(私有状态)两种状态,根据当前的State/Props返回一个UI;
- “组件”可由其他组件拼装而成。
课后个人总结
通过本次学习,我学到了react的发展历史及其创建思想,它相对于传统的UI设计有了新的改进,启用响应式编程,带来了更大的优势。并且学习了react的设计思路,了解了它的构建过程及重点因素。