Use when developing or modifying the @handsontable/vue3 wrapper package - Vue 3 SFC components, deep watchers, and provide/inject patterns for settings propagation
Scanned 9/19/2026
npx -y skills add handsontable/handsontable --skill vue-wrapper-dev --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Vue Wrapper Dev?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/handsontable-vue-wrapper-dev)More formats (shields.io, HTML) on the badges page.
---
name: vue-wrapper-dev
path: wrappers/vue3/**
description: Use when developing or modifying the @handsontable/vue3 wrapper package - Vue 3 SFC components, deep watchers, and provide/inject patterns for settings propagation
---
# Vue 3 Wrapper Development
## Package location
`wrappers/vue3/`
## Components
- **HotTable.vue** - the main Single-File Component. Creates the Handsontable instance on mount and tears it down on unmount.
- **HotColumn.vue** - child component for declarative per-column configuration.
## Architecture
Components use `defineComponent` with `propFactory('HotTable')` to auto-generate prop definitions matching every Handsontable option.
Deep watchers (`watch` with `deep: true`) monitor prop changes. When a change is detected, the watcher calls `updateSettings()` on the Handsontable instance with the new values.
`prepareSettings()` is a helper that transforms Vue component props into a plain Handsontable settings object, filtering out Vue-specific properties.
Parent-child communication uses Vue's `provide()` / `inject()` pattern. The HotTable component provides its settings and instance reference so HotColumn children can register their column configurations.
**Data handling:** Data is synced by reference, not deep-copied. Mutations to the original data array are reflected in the grid without extra work. Avoid replacing the data array reference unless you intend a full reload.
## Build and test
- **Build system:** Rollup 4.
- **Tests:** Jest with `@vue/test-utils`.
- **Run tests:** `npm run test --prefix wrappers/vue3`
- **Important:** Build core first with `npm run build --prefix handsontable`. Wrappers consume `handsontable/tmp/`, not `dist/`.
## Key files
| File | Purpose |
|---|---|
| `src/HotTable.vue` | Main grid component |
| `src/HotColumn.vue` | Per-column configuration component |
| `src/helpers.ts` | Settings preparation and utility functions |
| `src/types.ts` | TypeScript type definitions |
## Rules
- No business logic in wrappers. All data transformation and validation belongs in `handsontable/src/`.
- Cross-platform npm scripts: use Node.js `.mjs` helpers instead of bash-only constructs.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!