私は現在、新しい React Hooks API の使用例と、それを使って何ができるかについて非常に驚いています。
実験中に出てきた質問は、useCallback
.
この例を考えると:
const MyCounter = ({initial}) => {
const [count, setCount] = useState(initial);
const increase = useCallback(() => setCount(count => count + 1), [setCount]);
const decrease = useCallback(() => setCount(count => count > 0 ? count - 1 : 0), [setCount]);
return (
<div className="counter">
<p>The count is {count}.</p>
<button onClick={decrease} disabled={count === 0}> - </button>
<button onClick={increase}> + </button>
</div>
);
};
useCallback
インライン矢印関数をレンダリングするたびに新しいハンドラーを渡さないように、ハンドラーを にラップしていますが、ほとんどの場合、破棄するためだけに作成する必要があります。
少数のコンポーネントのみをレンダリングする場合は、おそらく大したことではありません。しかし、それを何千回も行った場合、パフォーマンスへの影響はどの程度になるでしょうか? 顕著なパフォーマンスの低下はありますか? そして、それを回避する方法は何でしょうか? おそらく、新しいハンドラーを作成する必要がある場合にのみ呼び出される静的ハンドラー ファクトリですか?