今天介绍的是避免重新渲染的 hook useMemo,透过它可以使我们提升 React 网站的效能。
由於当元件重新渲染时,复杂的函式又会重复执行一次,为了避免函式又进行不必要的执行,所以透过 useMemo 将函式运算完的值存起来。像需要花比较多时间执行的复杂函式都适合使用 useMemo。
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
useMemo(computation)
: 如果没有加上这个阵列,每次都会重新执行函式去产生新的值useMemo(computation, [])
: 空阵列的话,回传值不会改变useMemo(computation, [...someValues])
: 有加上一些元素值的话,当元素值改变时会重新更新函式回传值You may rely on useMemo as a performance optimization, not as a semantic guarantee.
这里示范一下用 useMemo 去包住 Math.random() 函式,所以除了第一次渲染之外,每次印出 memoizedValue 都会出现一样的值。
import React, { useState, useMemo } from "react";
export default function App() {
const [count, setCount] = useState(0);
const memoizedValue = useMemo(() => {
return Math.random();
}, []);
console.log(memoizedValue);
return (
<p>
<button onClick={() => setCount(count + 1)}> Click </button>
</p>
);
}
*** 模组资料夹 payment_sinopac 以 "/" 来代表此资料夹 ...
做完Player後先帮来上个简易武器吧,找到Player Bullet 0一样拖曳到场景,看是否需要...
今天的内容算是当初一时没考虑到的东西。 主要是Ptt一页的文章最多列出20篇,若要搜寻到20篇以前的...
本系列文之後也会置於个人网站 因为略过了一些JWT格式细节分析。所以这部分也有部分不会好好提到 到...
今天既昨天之後,接着继续摸索脚本的编写吧! 打开脚本之後,如果觉得字太小可以按住"Ctrl...