mcpField
S
shadcn-hooks

shadcn-hooks

github.com/debbl開発6181 回インストール6 週間前に更新
リポジトリ

shadcn-hooks について

React プロジェクト向けに、shadcn-hooks の選定と実装を案内するスキルです。状態やライフサイクル、ブラウザー機能に対応するフックを示し、外部依存が必要な場合の条件も説明します。

主な機能

  1. 01要件に合うフックの選定
  2. 02フックの呼び出し方の案内
  3. 03状態とライフサイクル管理への対応
  4. 04ブラウザー機能向けフックの提供
  5. 05外部依存の利用条件の提示

活用シーン

  1. 01React 機能に使うフックの選定
  2. 02デバウンスやスロットル処理の実装
  3. 03ブラウザーの状態やイベントの追跡
  4. 04外部データ取得フックの適用可否の確認

インストール

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

$npx skills add https://github.com/debbl/shadcn-hooks --skill shadcn-hooks

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
useActiveElement.md
useBattery.md
useBoolean.md
useClickAnyWhere.md
useClickAway.md
useClipboard.md
useControllableValue.md
useCounter.md
useCreation.md
useCustomCompareEffect.md
useDebounce.md
useDebounceEffect.md
useDebounceFn.md
useDeepCompareEffect.md
useDeepCompareLayoutEffect.md
useDocumentVisibility.md
useEffectEvent.md
useEffectWithTarget.md
useElementSize.md
useEventListener.md
useFps.md
useFullscreen.md
useHash.md
useHover.md
useInterval.md
useInViewport.md
useIsHydrated.md
useIsMatchMedia.md
useIsomorphicLayoutEffect.md
useIsOnline.md

詳細

shadcn-hooks

このスキルは、React プロジェクトで shadcn-hooks を使用する際の、選択と実装のガイドです。要件に最適なフックを対応付け、適切な使用パターンを適用し、実装を簡潔で保守しやすく、高速に保つため、独自のコードよりフックベースの解決策を優先します。

適用する場面

  • React/Next.js でのユーザーの開発作業を支援する際は、常にこのスキルを適用してください。
  • 要件を満たせる shadcn-hooks の関数があるか、必ず最初に確認してください。
  • 可読性、保守性、パフォーマンスを向上させるため、カスタムコードより shadcn-hooks を優先してください。
  • 要件に最適なフックを対応付け、フックの呼び出しルールに従ってください。
  • 以下の関数一覧にある Invocation フィールドを参照してください。たとえば、次のとおりです。
    • AUTO:該当する場合は自動的に使用します。
    • EXTERNAL:ユーザーが必要な外部依存関係をすでにインストールしている場合にのみ使用します。そうでない場合は再検討し、本当に必要な場合に限ってインストールを依頼してください。

インストール

shadcn CLI の使用を推奨します。プロジェクトに必要なフックだけをコピーでき(実行時の追加依存関係はなく、ツリーシェイキングにも対応しています)。

# Install a single hook (recommended)
npx shadcn@latest add @shadcnhooks/use-boolean

# Install multiple hooks at once
npx shadcn@latest add @shadcnhooks/use-boolean @shadcnhooks/use-mount @shadcnhooks/use-debounce

または、npm パッケージ全体をインストールできます(すべてのフックが含まれます)。

npm install shadcn-hooks

shadcn CLI を使用する場合は、ローカルパスからインポートしてください(例:import { useBoolean } from "@/hooks/use-boolean")。 npm パッケージを使用する場合は、"shadcn-hooks" からインポートしてください(例:import { useBoolean } from "shadcn-hooks")。

関数

以下に記載するすべての関数は、shadcn-hooks の一部です。各セクションでは、機能に基づいて関数を分類しています。

重要:各関数の項目には、簡単な Description と詳しい Reference が含まれています。関数を使用する際は、使用方法と型宣言について、必ず ./references にある対応するドキュメントを参照してください。

状態
関数説明呼び出し
useBooleanset、setTrue、setFalse、toggle ヘルパーを備えたブール値の状態AUTO
useControllableValue制御コンポーネントと非制御コンポーネントの両方のパターンに対応しますAUTO
useCounterinc、dec、set、reset ヘルパーを備えたカウンターAUTO
useDebounceデバウンス処理されたリアクティブな値AUTO
useResetState初期値に戻す reset 関数を備えた状態AUTO
useThrottleスロットル処理されたリアクティブな値AUTO
useToggleユーティリティアクションを使って2つの値を切り替えますAUTO
高度な機能
機能説明呼び出し
useCreation依存関係を深く比較するメモ化されたファクトリーAUTO
useCustomCompareEffectカスタムの依存関係比較関数を使う useEffectAUTO
useLatest常に最新の値を保持する RefAUTO
useLockFn非同期関数の並行実行を防止AUTO
useMemoizedFn同一性が変わらない安定した関数参照AUTO
usePreviousstate の前の値を返すAUTO
ライフサイクル
機能説明呼び出し
useDebounceEffectデバウンスされた useEffectAUTO
useDebounceFnrun、cancel、flush で制御するデバウンスされた関数AUTO
useDeepCompareEffect依存関係を深く比較する useEffectAUTO
useDeepCompareLayoutEffect依存関係を深く比較する useLayoutEffectAUTO
useEffectEventReact 19 の useEffectEvent のポリフィルAUTO
useEffectWithTarget対象の DOM 要素を依存関係としてサポートする useEffectAUTO
useInterval自動クリーンアップ機能付きのインターバルタイマーAUTO
useIsHydratedクライアントのハイドレーション完了後に true を返すAUTO
useIsomorphicLayoutEffectクライアントでは useLayoutEffect、サーバーでは useEffectAUTO
useMountコンポーネントのマウント時にのみコールバックを実行するAUTO
useThrottleEffectスロットルされた useEffectAUTO
useThrottleFnrun、cancel、flush で制御するスロットルされた関数AUTO
useTimeout自動クリーンアップ機能付きのタイムアウトタイマーAUTO
useUnmountコンポーネントのアンマウント時にクリーンアップを実行するAUTO
useUpdateコンポーネントを強制的に再レンダリングする関数を返すAUTO
useUpdateEffect最初のレンダーをスキップする useEffectAUTO
ブラウザー
関数説明呼び出し
useActiveElement現在フォーカスされている要素を追跡しますAUTO
useBatteryバッテリー残量と充電情報をリアクティブに取得しますAUTO
useClickAnyWhereドキュメント内の任意の場所でクリックイベントを監視しますAUTO
useClickAway対象要素の外側でのクリックを検出しますAUTO
useClipboard読み取り/書き込みに対応した Clipboard API をリアクティブに利用しますAUTO
useDocumentVisibilityドキュメントの表示状態をリアクティブに取得しますAUTO
useElementSizeResizeObserver を使って要素のサイズをリアクティブに取得しますAUTO
useEventListener自動クリーンアップに対応した宣言的なイベントリスナーAUTO
useFpsFPS(フレーム毎秒)をリアクティブに計測しますAUTO
useFullscreenFullscreen API をリアクティブに利用しますAUTO
useHashリアクティブな window.location.hashAUTO
useHover要素のホバー状態をリアクティブに取得しますAUTO
useInViewportIntersectionObserver を使って要素の表示状態を追跡しますAUTO
useIsMatchMediaCSS メディアクエリの一致状態をリアクティブに取得しますAUTO
useIsOnlineネットワークのオンライン/オフライン状態をリアクティブに取得しますAUTO
useMouseマウス/タッチのポインター座標をリアクティブに取得しますAUTO
useNetworkネットワーク接続情報をリアクティブに取得しますAUTO
useOsブラウザーのオペレーティングシステムをリアクティブに検出しますAUTO
useScrollLock対象要素のスクロールをロック/解除しますAUTO
useTextSelectionバウンディング矩形を含むテキスト選択状態をリアクティブに取得しますAUTO
useTitleドキュメントタイトルをリアクティブに管理しますAUTO
開発
関数説明呼び出し
useWhyDidYouUpdateレンダリング間で変更された props をログに記録します(デバッグ専用)AUTO
外部
関数説明呼び出し
useMcpuse-mcp の Model Context Protocol クライアントフック外部
useQuery@tanstack/react-query のデータ取得フック外部
useStickToBottomuse-stick-to-bottom のスクロール固定動作外部
useSWRswr のデータ取得フック外部

コメント