Nuxt module for vorm - The intuitive form engine for Vue 3
vorm-nuxt provides seamless integration of the powerful vorm form library into your Nuxt 3+ application with automatic imports and component registration.
Install the module and its peer dependency to your Nuxt application:
pnpm add vorm-nuxt vorm-vue
Note: Both packages are required.
vorm-nuxtis the Nuxt module wrapper, whilevorm-vuecontains the core form library.
Alternatively, use the Nuxt CLI (this will prompt you to install vorm-vue):
npx nuxi module add vorm-nuxt
Then add it to your nuxt.config.ts:
export default defineNuxtConfig({
modules: ['vorm-nuxt']
})
That's it! You can now use vorm in your Nuxt app ✨
Thanks to auto-imports, you can use vorm without any imports:
<script setup lang="ts">
// No imports needed! useVorm and VormSchema are auto-imported
const schema: VormSchema = [
{
name: 'email',
label: 'Email',
type: 'email',
validation: [{ rule: 'required' }, { rule: 'email' }]
},
{
name: 'password',
label: 'Password',
type: 'password',
validation: [{ rule: 'required' }, { rule: 'min', value: 8 }]
}
]
const { formData, validate } = useVorm(schema)
function handleSubmit() {
if (validate()) {
console.log('Form data:', formData)
}
}
</script>
<template>
<!-- Components are globally registered -->
<VormProvider>
<VormSection title="Login">
<AutoVorm />
</VormSection>
<button @click="handleSubmit">Submit</button>
</VormProvider>
</template>
useVorm - Main composable for form managementuseVormContext - Access form context from child componentsVormSchema - Type definition for your form schemaAll vorm components are automatically registered:
<VormProvider> - Form context provider<AutoVorm> - Automatic form generation from schema<VormSection> - Group form fields with a title<VormRepeater> - Repeatable field groupsYou can customize the module in your nuxt.config.ts:
export default defineNuxtConfig({
modules: ['vorm-nuxt'],
vorm: {
// Disable auto-imports (default: true)
autoImports: false,
// Disable component registration (default: true)
components: false
}
})
autoImportsbooleantrueEnable/disable auto-imports for composables and types.
componentsbooleantrueEnable/disable automatic component registration.
For comprehensive documentation about vorm features, validation, slots, and advanced usage:
Check out these live examples to see vorm in action:
Contributions are welcome! Please feel free to submit a Pull Request.
# Install dependencies
pnpm install
# Generate type stubs
pnpm run dev:prepare
# Develop with the playground
pnpm run dev
# Build the playground
pnpm run dev:build
# Run ESLint
pnpm run lint
# Run tests
pnpm run test
MIT © FH SoftDev - Flo0806