摘要: 流程 react在diff之后,会进入commit阶段,将新生成的虚拟DOM发生的变化映射到真实DOM上 在commit的前期,会调度一些生命周期方法,对于类组件来说,会触发getSnapshotBeforeUpdate。对于函数组件来说,会调度useEffect。 但是并不是立即执行,在此阶段,会 阅读全文
posted @ 2021-06-17 18:04 ashen1999 阅读(1109) 评论(0) 推荐(1) 编辑
摘要: hook组件初渲染 hooks组件在初次渲染时, 解析组件类型,判断是Function还是class类型,然后执行对应类型的处理方法 判断到当前是Function类型组件后,首先在当前组件,也就是fiberNode上进行hook的创建和挂载,将所有的hook api都挂载到全局变量dispatche 阅读全文
posted @ 2021-06-17 18:03 ashen1999 阅读(1506) 评论(0) 推荐(0) 编辑
摘要: 当更改代码时,浏览器请求了这两个文件。如下例: json文件中的c表示更新的模块,对应的值为true h对应的是本次热更新生成的hash值,这将作为下次热更新的标识 本次修改的代码,重新打包编译之后,在文件中,重新请求了useEffect需要请求的接口 热更新实际上就是通过webSockets,将服 阅读全文
posted @ 2021-06-09 14:38 ashen1999 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 初始化阶段 参数处理 合并默认参数和配置参数 校验配置 合并最终配置 创建compiler对象 处理用户定义的plugins 调用plugin的apply 调用new WebpackOptionsApply().apply 处理webpack内置插件 注入EntryOptionPlugin插件,处理 阅读全文
posted @ 2021-06-09 14:35 ashen1999 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 前情提要:在公司,有某个长时间存在于功能分支的未合到主分支的代码,某日需要合代码。mentor说让我先rebase一下,之前很少用到,于是乎谷歌一顿操作,并实操多次,产出以下结论~~ 什么是rebase?与merge的区别? 直接使用merge 在将功能分支合到主分支的场景时,如果直接使用merge 阅读全文
posted @ 2021-05-31 10:51 ashen1999 阅读(720) 评论(0) 推荐(0) 编辑
摘要: 在项目中,我们通常会使用useState来初始化并更新数据。如下: function App(){ const [num, setNum] = useState(0); function increment() { setTimeout(() => { setNum(num + 1); }, 100 阅读全文
posted @ 2021-01-06 11:43 ashen1999 阅读(4804) 评论(0) 推荐(0) 编辑
摘要: 局部作用域 在css中,样式都是全局的,所以经常出现样式相互污染的情况。CSS Modules 通过使用一个独一无二的classname来创建局部作用域,解决这一问题。 import styles from './app.css' export default () => { return ( <h 阅读全文
posted @ 2020-12-28 15:30 ashen1999 阅读(216) 评论(0) 推荐(0) 编辑
摘要: Partial 为所有属性添加?这个midfier,也就是设置所有属性都是可选属性。 interface Person{ name: string; age: number; } type NewPerson = Partial<Person>; const p: NewPerson = { nam 阅读全文
posted @ 2020-12-25 16:19 ashen1999 阅读(854) 评论(0) 推荐(0) 编辑
摘要: type能为基本类型起别名 type aliaName = string; type能实现联合类型 interface Dog{ wang(); } interface Cat{ miao(); } type Pet = Dog | Cat; type实现元组类型 type PetList = [D 阅读全文
posted @ 2020-12-25 15:28 ashen1999 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 类似于any,但是更安全。需要通过类型范围缩小,才能使用 如: const a: unknown = 10; if(typeof a 'string'){ console.log(a.tolocalString) } 在上例中,只有string类型的a,才能被输出。 阅读全文
posted @ 2020-12-25 15:22 ashen1999 阅读(841) 评论(0) 推荐(0) 编辑