摘要: pureComponent和FunctionComponent区别 PureComponent和Component完全相同,但是在shouldComponentUpdate实现中,PureComponent使用了props和state的浅比较。主要作用是用来提高某些特定场景的性能 为什么虚拟DOM会 阅读全文
posted @ 2023-05-19 13:01 beifeng11996 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 开发者普遍认为状态是组件的一部分, 但是同时却又在剥离状态上不停的造轮子, 这不是很矛盾么? 对于一个最简单的文本组件而言 function Text(){ const [text, setText] = useState('载入') return (){ <p>{text}</p> } } 你觉得 阅读全文
posted @ 2023-05-19 13:00 beifeng11996 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 高阶组件的应用场景 权限控制 利用高阶组件的 条件渲染 特性可以对页面进行权限控制,权限控制一般分为两个维度:页面级别 和 页面元素级别 // HOC.js function withAdminAuth(WrappedComponent) { return class extends React.C 阅读全文
posted @ 2023-05-19 13:00 beifeng11996 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 前言 最近一直在学习关于React方面的知识,并有幸正好得到一个机会将其用在了实际的项目中。所以我打算以博客的形式,将我在学习和开发(React)过程中遇到的问题记录下来。 这两天遇到了关于组件不必要的重复渲染问题,看了很多遍官方文档以及网上各位大大们的介绍,下面我会通过一些demo结合自己的理解进 阅读全文
posted @ 2023-05-19 12:59 beifeng11996 阅读(71) 评论(0) 推荐(0) 编辑
摘要: diff 算法? 把树形结构按照层级分解,只比较同级元素 给列表结构的每个单元添加唯一的 key 属性,方便比较 React 只会匹配相同 class 的 component(这里面的 class 指的是组件的名字) 合并操作,调用 component 的 setState 方法的时候, React 阅读全文
posted @ 2023-03-13 17:19 beifeng11996 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 先来思考一个老生常谈的问题,setState是同步还是异步? 再深入思考一下,useState是同步还是异步呢? 我们来写几个 demo 试验一下。 先看 useState 同步和异步情况下,连续执行两个 useState 示例 function Component() { const [a, se 阅读全文
posted @ 2023-03-13 17:19 beifeng11996 阅读(306) 评论(0) 推荐(0) 编辑
摘要: React diff 算法的原理是什么? 实际上,diff 算法探讨的就是虚拟 DOM 树发生变化后,生成 DOM 树更新补丁的方式。它通过对比新旧两株虚拟 DOM 树的变更差异,将更新补丁作用于真实 DOM,以最小成本完成视图更新。 具体的流程如下: 真实的 DOM 首先会映射为虚拟 DOM; 当 阅读全文
posted @ 2023-03-13 17:18 beifeng11996 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 前言:最近接触到一种新的(对我个人而言)状态管理方式,它没有采用现有的开源库,如redux、mobx等,也没有使用传统的useContext,而是用useState + useEffect写了一个发布订阅者模式进行状态管理,这一点对我来说感觉比较新奇,以前从没接触过这种写法,于是决定研究一下目前比较 阅读全文
posted @ 2023-03-13 17:17 beifeng11996 阅读(29) 评论(0) 推荐(0) 编辑
摘要: React中有使用过getDefaultProps吗?它有什么作用? 通过实现组件的getDefaultProps,对属性设置默认值(ES5的写法): var ShowTitle = React.createClass({ getDefaultProps:function(){ return{ ti 阅读全文
posted @ 2023-03-01 08:12 beifeng11996 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 第一次发文章 not only(虽然)版式可能有点烂 but also (但是)最后赋有手稿研究 finally看完他你有收获 diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的Fiber节点比较,将比较的结果生成新的Fiber节点。 ! 为了防止概念混淆,强调 一个DO 阅读全文
posted @ 2023-03-01 08:11 beifeng11996 阅读(93) 评论(0) 推荐(0) 编辑