mcpField
R
rerender-memo

rerender-memo

github.com/theorcdev開発2.1k37 回インストール2 日前に更新
リポジトリ

rerender-memo について

React のレンダリングに関するスキルで、時間のかかる処理をメモ化コンポーネントに分け、早期リターン時の計算を避けます。React Compiler が有効なら手動のメモ化は不要になる点も説明します。

主な機能

  1. 01重い処理をメモ化コンポーネントに分離
  2. 02計算前の早期リターン
  3. 03React Compiler の自動最適化を考慮

活用シーン

  1. 01プロフィール読み込み中のアバター計算を回避
  2. 02計算を独立コンポーネントに分離

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/theorcdev/8bitcn-ui --skill rerender-memo

インストール後、Claude Code で/rerender-memoを入力して読み込まれたか確認します。

詳細

メモ化コンポーネントへの切り出し

重い処理をメモ化コンポーネントに切り出すと、計算を行う前に早期リターンできるようになります。

誤り(読み込み中でもアバターを計算します):

function Profile({ user, loading }: Props) {
  const avatar = useMemo(() => {
    const id = computeAvatarId(user)
    return <Avatar id={id} />
  }, [user])

  if (loading) return <Skeleton />
  return <div>{avatar}</div>
}

正しい例(読み込み中は計算をスキップします):

const UserAvatar = memo(function UserAvatar({ user }: { user: User }) {
  const id = useMemo(() => computeAvatarId(user), [user])
  return <Avatar id={id} />
})

function Profile({ user, loading }: Props) {
  if (loading) return <Skeleton />
  return (
    <div>
      <UserAvatar user={user} />
    </div>
  )
}

注: プロジェクトで React Compiler が有効になっている場合、memo() と useMemo() による手動のメモ化は不要です。コンパイラーが再レンダリングを自動的に最適化します。

コメント