Published onFebruary 16, 2021【笔记】- React DOM Diff总结React笔记DOM diff的核心就是新旧`virtual dom`的属性对比,通过在内存中做数据对比而非直接操作DOM,提升了渲染的效率,直到最后对比完成再统一更新DOM。而diff算法就是如何高效得完成这个内存数据结构的对比。 如果没有diff算法对比完所有节点将花费O(n3)的复杂度。
Published onJune 1, 2020React vs Vue 异同总结ReactVue最近开始学习Vue,个人感觉Vue需要记的概念更多,好处是使用`template`这种类似模板的开发方式,比较直观容易被传统前端理解,对于一个React熟练工来说,Vue的概念确实不大友好,比如说`v-for`, 看起来是帮开发者减少了代码量内置了一个实现组件循环的方式,但从理解代码的角度来说还不如React中写一个map循环来得直观。
Published onMay 28, 2020嵌套组件 - 隐藏显示引起 Hooks 报错问题React问题背景: 当在一个用了hook的父组件里面嵌套多个带hook的子组件时, 如果子组件会根据条件隐藏显示,且使用函数的渲染子组件方式就会发生如下错误。
Published onMay 26, 2020React Suspense & Lazy实战React需求是之前后端拿给我看一个私有部署的环境,各个页面路由间切换,内容一直是白屏,过了很久才出现内容。问是不是前端问题,为什么白屏这么久,打开控制台看很明显看到部署的网络环境比较差,chunk文件加载速度很慢。为了不给用户带来页面崩溃的错觉,应该加上类似菊花的进度显示。而这里正好可以结合React官方的Suspense和Lazy来实现的。
Published onMay 22, 2020React-Hooks精读ReactHooks这是一年前刚开始上手React Hooks时候读了Dan大神的[useEffect 完整指南](https://overreacted.io/zh-hans/a-complete-guide-to-useeffect/)时写的文章,我的有些观点已经被证明是错误的了,这里放一下就当是做了归档
Published onMay 1, 2020React Router v5 useLocation hook 无法在子组件mount前触发更新的问题ReactRouterHooksReact Router v5中提供了可以监听location变化的`useLocation` hook,本意是想将其放置在这个容器的顶端(page-container组件)中,然后在effect的回调中去更新路由相关的store info,但事实上除了初次加载外,所有的路由变化都无法第一时间反应到组件上。