vueuse
VueUseのコンポーザブルを活用する際に使用します。`useMouse`でマウス位置のトラッキング、`useStorage`でlocalStorageの管理、`useNetwork`でネットワーク状態の検出、`refDebounced`による値のデバウンスなど、ブラウザAPIをリアクティブに扱えます。カスタムコンポーザブルを書く前にVueUseを確認してください。ほとんどのパターンはすでに実装済みです。
description の原文を見る
Use when working with VueUse composables - track mouse position with useMouse, manage localStorage with useStorage, detect network status with useNetwork, debounce values with refDebounced, and access browser APIs reactively. Check VueUse before writing custom composables - most patterns already implemented.
SKILL.md 本文
VueUse
Vue Composition API のための必須ユーティリティコレクション。カスタム composable を書く前に VueUse を確認してください。ほとんどのパターンは既に実装されています。
現在の安定版: Vue 3.5+ 対応の VueUse 14.x
インストール
Vue 3:
pnpm add @vueuse/core
Nuxt:
pnpm add @vueuse/nuxt @vueuse/core
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['@vueuse/nuxt'],
})
Nuxt モジュールが composable を自動的にインポートします。import は不要です。
カテゴリー
| カテゴリー | 例 |
|---|---|
| State | useLocalStorage, useSessionStorage, useRefHistory |
| Elements | useElementSize, useIntersectionObserver, useResizeObserver |
| Browser | useClipboard, useFullscreen, useMediaQuery |
| Sensors | useMouse, useKeyboard, useDeviceOrientation |
| Network | useFetch, useWebSocket, useEventSource |
| Animation | useTransition, useInterval, useTimeout |
| Component | useVModel, useVirtualList, useTemplateRefsList |
| Watch | watchDebounced, watchThrottled, watchOnce |
| Reactivity | createSharedComposable, toRef, toReactive |
| Array | useArrayFilter, useArrayMap, useSorted |
| Time | useDateFormat, useNow, useTimeAgo |
| Utilities | useDebounce, useThrottle, useMemoize |
クイックリファレンス
必要に応じて composable ファイルを読み込みます:
| 作業内容 | ファイルを読み込む |
|---|---|
| composable を探す | references/composables.md |
| 特定の composable | composables/<name>.md |
ファイルの読み込み
タスクに基づいて以下のリファレンスファイルを読み込むことを検討してください:
-
references/composables.md- VueUse composable をカテゴリーまたは機能で検索する場合
すべてのファイルを一度に読み込まないでください。 現在のタスクに関連するもののみを読み込みます。
共通パターン
状態の永続化:
const state = useLocalStorage('my-key', { count: 0 })
マウス位置の追跡:
const { x, y } = useMouse()
デバウンスされた ref:
const search = ref('')
const debouncedSearch = refDebounced(search, 300)
共有 composable (シングルトン):
const useSharedMouse = createSharedComposable(useMouse)
SSR に関する注意点
多くの VueUse composable は SSR 中には利用できないブラウザ API を使用しています。
isClient で確認:
import { isClient } from '@vueuse/core'
if (isClient) {
// ブラウザ限定のコード
const { width } = useWindowSize()
}
onMounted でラップ:
const width = ref(0)
onMounted(() => {
// ブラウザ内でのみ実行
const { width: w } = useWindowSize()
width.value = w.value
})
SSR 対応の composable を使用:
// これらは内部的に isClient をチェック
const mouse = useMouse() // サーバー上では {x: 0, y: 0} を返す
const storage = useLocalStorage('key', 'default') // サーバー上ではデフォルト値を使用
@vueuse/nuxt は SSR を自動的に処理します - composable はサーバー上で安全なデフォルト値を返します。
ターゲット要素 Ref
DOM 要素の代わりにコンポーネント ref をターゲットにする場合:
import type { MaybeElementRef } from '@vueuse/core'
// コンポーネント ref は DOM 要素を取得するために .$el が必要
const compRef = ref<ComponentInstance>()
const { width } = useElementSize(compRef) // ❌ 動作しません
// MaybeElementRef パターンを使用
import { unrefElement } from '@vueuse/core'
const el = computed(() => unrefElement(compRef)) // .$el を取得
const { width } = useElementSize(el) // ✅ 動作します
または $el に直接アクセス:
const compRef = ref<ComponentInstance>()
onMounted(() => {
const el = compRef.value?.$el as HTMLElement
const { width } = useElementSize(el)
})
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- onmax
- リポジトリ
- onmax/nuxt-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/onmax/nuxt-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。