推荐读物
JavaScript
Rethinking Asynchronous JavaScript 视频
greensock Animations platform - 简单易上手的JS动画库
React
如果状态更新前后没有变化,则可以略过剩下的步骤。这个优化策略被称为 eagerState
。
当前组件不存在更新,那么首次触发状态更新时,就能立刻计算出最新状态,进而与当前状态比较。
第一次点击 div,打印
App render 1
child render
- current 与 wip 同时标记更新,render 后 wip 的「更新标记」清除。(current 有,wip 无)
- 完成渲染后 current proess 与 wip 交换位置。(current 无,wip 有) 第二次点击 div,打印
App render 1
第二次点击 div 时,由于 wip 存在更新标记,没有命中 eagerState 3. render 后 wip 的「更新标记」清除。 (current 无,wip 无)
如果组件的子孙节点没有状态变化,可以跳过子孙组件的 render。这个优化策略被称为 bailout
应用 connected-react-router 和 redux-thunk 打通 react 路由孤立
Taro
Vue
Vue 2
Css
Algorithm
Python
Rust
miniprogram
自动化测试
fix the not wrapped in act warning
用 Enzyme 测试使用 Hooks 的 React 函数组件 以 70%、20%、10% 的比例分别投入单元测试,集成测试和端到端测试。
- 最小化单元测试,如基础类方法、utils 工具库等
- Redux actions、reducers、effects 测试
- React 组件测试
- 端内测试(考虑到后端可能没有全流程的沙箱链路,所以使用 mock 数据测试)
用 Enzyme 测试使用 Hooks 的 React 函数组件