
Security News
MCP Steering Committee Launches Official MCP Registry in Preview
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.
@evilkiwi/form
Advanced tools
@evilkiwi/form
provides Vue 3 Hooks for consuming, validating and managing Forms.
Inspired by vue-hooks-form.
This package is available via NPM:
yarn add @evilkiwi/form
# or
npm install @evilkiwi/form
A simple example app is provided in the examples/simple folder.
<template>
<form @submit.prevent="submit">
<label for="email">Email Address</label>
<input
type="email"
name="email"
id="email"
placeholder="Email Address"
:disabled="loading"
@focus="email.clearError"
v-model="email.value"
/>
<p class="err" v-if="email.error">{{ email.error.message }}</p>
<label for="email">Password</label>
<input
type="password"
name="password"
id="password"
placeholder="Password"
:disabled="loading"
@focus="password.clearError"
v-model="password.value"
/>
<p class="err" v-if="password.error">{{ password.error.message }}</p>
<button type="submit" :disabled="loading">Login</button>
</form>
</template>
<script lang="ts" setup>
import { useForm } from '@evilkiwi/form';
const { useField, handle, loading } = useForm<{
email: string;
password: string;
}>({
defaults: {
email: 'hello@example.com',
},
});
const email = useField('email', {
type: 'email',
required: true,
});
const password = useField('password', {
required: true,
});
const submit = handle(async ({ email, password }) => {
alert(`Email: ${email} Password: ${password}`);
});
</script>
useForm
Option | Default | Type | Description |
---|---|---|---|
defaults | {} | Record<string, any> | Optionally provide defaults for the various fields in this object by key -> value pairs. |
validationMode | submit | 'change'|'submit' | NOT IMPLEMENTED YET. Whether to validate input once submitted |
Option | Type | Description |
---|---|---|
useField | Field<unknown> | Documented below. |
handle | (run: values => Promise<void>) => async (e?: Event) => Promise<void> | Registers the asynchronous handler that runs once a form is submitted and successfully validated. |
reset | () => void | Reset the Form to tis default state. |
validate | () => Promise<boolean> | Manually trigger validation and error handling. |
clearErrors | () => void | Clear all errors for all fields. |
loading | Ref<boolean> | Whether the form is currently executing. |
destroy | () => void | Destroy and clean-up the Form handler. Happens automatically during onBeforeUnmount . |
useField
Currently the options object provided to useField
is inheritted from async-validator and
all options are forwarded as a validation field.
Option | Type | Description |
---|---|---|
errors | ValidateError[] | An array of all Errors set against this Field. |
error | ValidateError|null | Optimistically picks one, if any, of the Errors against the field. |
hasError | ComputedRef<boolean> | Whether or not the Field has 1 or more errors. |
setError | (text: string) => void | Manually set the error on this field. |
clearError | () => void | Clears all Errors currently set against this Field. |
value | WritableComputedRef<unknown> | The value for the field, compatible with v-model . |
FAQs
Vue 3 Utility Hook for Form handling and validation
We found that @evilkiwi/form demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.
Product
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.
Research
/Security News
npm author Qix’s account was compromised, with malicious versions of popular packages like chalk-template, color-convert, and strip-ansi published.