首页
聂骁骏
取消

高性能 JavaScript 要点总结

此笔记为《高性能 JavaScript 编程》一书的要点总结。 1. 加载和运行 大多数浏览器使用单进程处理 UI 更新和 JavaScript 运行等多个任务。当浏览器遇到一个 <script> 标签时,浏览器会停下来运行此 JavaScript 代码,然后再继续解析、翻译页面。 1.1 将脚本放在底部 将所有 <script> 标签放在尽可能接近 <...

设计和管理范式化 State

此笔记是对 Redux 中文官网 中 state 范式化的总结。 1. State 范式化 事实上,大部分程序处理的数据都是嵌套或互相关联的。例如,一个博客中有多篇文章,每篇文章有多条评论,所有的文章和评论又都是由用户产生的。这种类型应用的数据看上去可能是这样的: 这种结构的特点是很直观,跟页面结构一致,但存在以下几个问题: 1) 当数据在多处冗余后,需要更...

React 中的高阶组件和 Redux 中的高阶 Reducer

最近在使用 ant-design 完成网页的过程中,碰到了需要复用组件和 Reducer 的问题。详情可点击其 github 仓库; 1. 组件复用 页面左侧有三个一级菜单 电影、音乐和图书,使用 react-router 4 实现点击菜单跳转至相应的组件。 电影页面: 音乐页面: 图书页面: 1.1 路由、组件和 state 结构 路由部分代码如下: <Switch&g...

使用递归实现 ES5 中的数组方法 reduce

1. 递归 JavaScript高级程序设计(第三版) 第7章中的7.1节讲了 递归。 1.1 递归函数 递归函数是在一个函数通过名字调用自身的情况下构成的。 书中给了一个经典的递归阶乘函数: function factorial(num) { if(num <= 1) { return 1; } else { return num * fact...