前言
此笔记是不仅在看视频的时候随手记的,之后也去查询了相关资料,思考、总结而成。
一、响应式系统与React
1.什么是响应式系统?
随着设备终端的增多,有的项目需要运行在集群上的成千的服务器,数据量增多,而用户不满足响应时间太长,需要100%的在线时间。但是旧的系统已经不能够满足此要求。进而推出了响应式系统。我们定义响应式系统的四个显著特点:能灵敏响应请求的(Responsive),能回复的(Resilient),可伸缩扩展的(Elastic),基于消息驱动的(Message Driven)。系统能够做到灵敏响应请求,这样的系统就称为响应式系统(Reactive System)。
2.什么是React?
React是Facebook开发的一款JS库。它不依赖其他任何的库,因此开发中,可以与任何其他的库集成使用,包括Jquery、Backbone等。它具有速度快、性能好,能够跨浏览器兼容,兼容性好,使用单行数据流等优点。
二、响应式编程
对响应式编程的三点期望:1.状态更新,UI自动更新。2.前端代码组件化,可复用,可封装。3.状态之间的相互依赖关系只需声明即可。 组件方面,1.组件是组件的组合。2.组件内拥有状态,外部不可见。3.父组件可将状态传入组件内部。
三、React(hooks)的写法与React实现
- Hook是React16.8.0版本增加的新特性/新语法,可以在函数组件中使用 state 以及其他的 React 特性。目前有三个常用的Hook:
- .State Hook: React.useState()
const [state, setState] = useState(initialState);
在初始渲染期间,返回的状态 (state) 与传入的第一个参数 (initialState) 值相同。setState 函数用于更新 state。它接收一个新的 state 值并将组件的一次重新渲染加入队列。
- . Effect Hook: React.useEffect()
// 写执行任何带副作用操作
return () => { // 在组件卸载前执行可做一些收尾工作
}
}, [stateValue])
- . Ref Hook: React.useRef()
const refContainer = useRef(initialValue);
- React实践中存在的三个缺点:1.JSX不符合JS标准语法。2.返回的JSX发生改变时,如何更新DOM。3.State/Props更新时,要重新触发render函数。