ワンクリックで
vani-keyed-lists
Build scalable lists with keyed rows and per-item updates
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Build scalable lists with keyed rows and per-item updates
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Create a tiny global store with explicit subscriptions
Updates Vani SPA app UI in src/spa-app, especially the landing page/homepage and landing examples. Use when the user mentions Vani SPA app, src/spa-app, landing page/homepage, or landing examples.
Mount Vani components inside existing apps or DOM islands
Schedule explicit updates with microtasks and transitions
Create a minimal Vani SPA root with explicit updates
Implement SSR, hydration, and selective activation with Vani
| name | vani-keyed-lists |
| description | Build scalable lists with keyed rows and per-item updates |
Instructions for rendering lists where each row updates independently.
Use this when a list needs item-level updates without re-rendering the whole list.
Map or array with stable ids.key on each row to preserve identity across reorders.ComponentRef per id and call ref.current?.update() (or
ref.current?.update({ onlyAttributes: true }) for class/attr changes).text() / attr() for fine-grained row updates.Item)List)Map (defaults to true)Example 1 usage pattern:
Implement a todo list with keyed rows and per-row updates on toggle.
Example 2 usage pattern:
Reorder items by id while preserving row identity with key.
Example output:
Created: src/list.ts
Notes: Row updates call ref.current?.update() or use signals.
name: vani-keyed-lists description: Build scalable Vani lists with keyed rows and per-item updates. argument-hint: "[list feature]"
Use this skill when building lists or collections that require efficient updates.
Follow these steps:
Row component and pass key, ref, and item accessors.ref.current?.update() or signals with text() / attr().ComponentRef or signals for per-row updates.update({ onlyAttributes: true }) for class/attr-only changes.