Upgrade to Pro — share decks privately, control downloads, hide ads and more …

知られざるprops命名の慣習 アクション編

Avatar for uhyo uhyo
August 27, 2025

知られざるprops命名の慣習 アクション編

2025-08-27 Findy TECH BATON「実践Next.js!AIアウトプットとコンポーネント設計」 最新事情 LT

Avatar for uhyo

uhyo

August 27, 2025
Tweet

More Decks by uhyo

Other Decks in Technology

Transcript

  1. アクションの例② useTransition const [isPending, startTransition] = useTransition(); <button disabled={isPending} onClick={()

    => startTransition(() => { // この関数がアクション // ↓このステート更新がトランジション扱い setState(…); }); }}> Do something fancy </button> 5
  2. ボタンをコンポーネント化した const MyButton = ({ onClick }) => { const

    [isPending, startTransition] = useTransition(); return (<button disabled={isPending} onClick={() => startTransition(() => { onClick(); }); }}> Do something fancy </button>); }; 6
  3. ボタンをコンポーネント化した const MyButton = ({ onClick }) => { const

    [isPending, startTransition] = useTransition(); return (<button disabled={isPending} onClick={() => startTransition(() => { onClick(); }); }}> Do something fancy </button>); }; 7 onClickをアクションの中で 呼び出してくれる (Suspenseとの親和性◎)
  4. 本題: propsの命名規則 const MyButton = ({ action }) => {

    const [isPending, startTransition] = useTransition(); return (<button disabled={isPending} onClick={() => startTransition(() => { action(); }); }}> Do something fancy </button>); }; 8 アクションとして呼び出され るコールバックpropsには、 actionという名前を付ける
  5. action propsの注意点 const MyButton = ({ clickAction }) => {

    const [isPending, startTransition] = useTransition(); return (<button disabled={isPending} onClick={() => startTransition(async() => { await clickAction(); }); }}> Do something fancy </button>); }; 10 アクションpropが同期でも非同期 でも対応できるように、 awaitするのがベストプラクティス xxxActionという命名も可 (onXXXみたいなノリで)