日常记录
react hook useEffect (() => { document.title = `You clicked ${count} times` ; } , [ count ]); // 仅在 count 更改时更新,如果不变 React 会跳过这个 effect ,这就实现了性能的优化 不传第二参数,则如果组件多次渲染(通常如此),则在执行下一个 effect 之前,上一个 effect 就已被清除 如果想执行只运行一次的 effect (仅在组件挂载和卸载时执行),可以传递一个空数组([])作为第二个参数。这就告诉 React 你的 effect 不依赖于 props 或 state 中的任何值,所以它永远都不需要重复执行。这并不属于特殊情况 —— 它依然遵循依赖数组的工作方式。 快速创建数组 let f = length => Array.from ( {length} ) .map (( v , k ) => k ); 进程与线程 一个进程由几个线程组成,进程是资源分配的最小单位,线程是 CPU 调度的最小单位 比如 Chrome 浏览器,可以把每个 tab 看做一个进程,当一个 tab 打开后,会对应开启其内部的线程,如 JavaScript 编译线程、 css 渲染线程、垃圾回收、 service worker 等等 线程快、相互耦合性高,可互通消息