03 2023 档案

摘要:diff 算法? 把树形结构按照层级分解,只比较同级元素 给列表结构的每个单元添加唯一的 key 属性,方便比较 React 只会匹配相同 class 的 component(这里面的 class 指的是组件的名字) 合并操作,调用 component 的 setState 方法的时候, React 阅读全文
posted @ 2023-03-13 17:19 beifeng11996 阅读(53) 评论(0) 推荐(0) 编辑
摘要:先来思考一个老生常谈的问题,setState是同步还是异步? 再深入思考一下,useState是同步还是异步呢? 我们来写几个 demo 试验一下。 先看 useState 同步和异步情况下,连续执行两个 useState 示例 function Component() { const [a, se 阅读全文
posted @ 2023-03-13 17:19 beifeng11996 阅读(485) 评论(0) 推荐(0) 编辑
摘要:React diff 算法的原理是什么? 实际上,diff 算法探讨的就是虚拟 DOM 树发生变化后,生成 DOM 树更新补丁的方式。它通过对比新旧两株虚拟 DOM 树的变更差异,将更新补丁作用于真实 DOM,以最小成本完成视图更新。 具体的流程如下: 真实的 DOM 首先会映射为虚拟 DOM; 当 阅读全文
posted @ 2023-03-13 17:18 beifeng11996 阅读(25) 评论(0) 推荐(0) 编辑
摘要:前言:最近接触到一种新的(对我个人而言)状态管理方式,它没有采用现有的开源库,如redux、mobx等,也没有使用传统的useContext,而是用useState + useEffect写了一个发布订阅者模式进行状态管理,这一点对我来说感觉比较新奇,以前从没接触过这种写法,于是决定研究一下目前比较 阅读全文
posted @ 2023-03-13 17:17 beifeng11996 阅读(37) 评论(0) 推荐(0) 编辑
摘要:React中有使用过getDefaultProps吗?它有什么作用? 通过实现组件的getDefaultProps,对属性设置默认值(ES5的写法): var ShowTitle = React.createClass({ getDefaultProps:function(){ return{ ti 阅读全文
posted @ 2023-03-01 08:12 beifeng11996 阅读(48) 评论(0) 推荐(0) 编辑
摘要:第一次发文章 not only(虽然)版式可能有点烂 but also (但是)最后赋有手稿研究 finally看完他你有收获 diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的Fiber节点比较,将比较的结果生成新的Fiber节点。 ! 为了防止概念混淆,强调 一个DO 阅读全文
posted @ 2023-03-01 08:11 beifeng11996 阅读(117) 评论(0) 推荐(0) 编辑
摘要:你对 Time Slice的理解? 时间分片 React 在渲染(render)的时候,不会阻塞现在的线程 如果你的设备足够快,你会感觉渲染是同步的 如果你设备非常慢,你会感觉还算是灵敏的 虽然是异步渲染,但是你将会看到完整的渲染,而不是一个组件一行行的渲染出来 同样书写组件的方式 也就是说,这是R 阅读全文
posted @ 2023-03-01 08:11 beifeng11996 阅读(93) 评论(0) 推荐(0) 编辑
摘要:前言 不知道大家有没有过这个疑问,React 中 setState() 为什么是异步的?我一度认为 setState() 是同步的,知道它是异步的之后很是困惑,甚至期待 React 能出一个 setStateSync() 之类的 API。同样有此疑问的还有 MobX 的作者 Michel Wests 阅读全文
posted @ 2023-03-01 08:02 beifeng11996 阅读(10) 评论(0) 推荐(0) 编辑