这是我参与「第五届青训营」伴学笔记创作活动的第 6 天.
1.reacrt的历史应用
前端开发,移动端开发,桌面应用开法 私货:3D模型
shp组合式的组件思想 faxjs是react的原型 如今react生态大爆发
2.设计思路
UI编程的痛点:状态更新,但是UI不会自动更新。需要DOM手动更新 欠缺代码层面的封装和隔离,没有组件化 数据相互依赖,需要手动维护 react就是为了解决以上的问题 组件化: 组件的组合,内部有自己的状态,外部不可见,父状态可以给子。
react是单向数据流
3.hooks的写法
effectHooks让我们可以在函数组件内使用生命周期方法,我们可以在这里更新DOM,获取数据等具有'副作用'的行为。effect Hook会在组件每次render后执行,ruturn的函数会在组件卸载时执行,若要让effect hook只在组件首次加载时执行,可以传入一个空数组作为第二个参数,也可以在数组中指定依赖项,只有依赖项改变时,effectHooks才会执行。
setState定义在React.Component中,但是React包中只是定义API,并没有具体实现逻辑。类似的还有createContext()等大多数功能都是在‘渲染器’中实现的。react-dom、react-dom/server、 react-native、 react-test-renderer、 react-art都是常见的渲染器。所以我们在使用react新特性的时候,react和react-dom都需要更新。
4.react的实现
jsx不符合js的语法 返回jsx,更新dom virtual dom 如何diff 更新次数最少,遍历的更少
5.react状态管理库
状态共享 redux xstate mobx recoil
6.框架科普
本质是一个js libiary nextjs modernjs