AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Tanstack Vue Form Skilld

skill-skilld-dev-vue-ecosystem-skills-tanstack-vue-form-skilld · by skilld-dev

Powerful, type-safe forms for Vue. ALWAYS use when writing code importing \"@tanstack/vue-form\". Consult for debugging, best practices, or modifying @tanstack/vue-form, tanstack/vue-form, tanstack vue-form, tanstack vue form, form.

No reviews yet
0 installs
31 views
0.0% view→install

Install

$ agentstack add skill-skilld-dev-vue-ecosystem-skills-tanstack-vue-form-skilld

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-skilld-dev-vue-ecosystem-skills-tanstack-vue-form-skilld)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Tanstack Vue Form Skilld? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

TanStack/form @tanstack/vue-form@1.29.1

Tags: latest: 1.29.1

References: [Docs](./references/docs/_INDEX.md)

API Changes

This section documents version-specific API changes for @tanstack/vue-form.

  • BREAKING: field.errors — v1.28.0 flattens errors by default ([error] not [[error]]), use disableErrorFlat: true to restore old nested behavior [source](./references/releases/@tanstack/vue-form@1.28.0.md)
  • DEPRECATED: field.getValue() — use field.state.value instead as direct accessor methods on FieldApi are deprecated in favor of state access [source](./references/docs/reference/classes/FieldApi.md)
  • NEW: field.parseValueWithSchema() — validates field value against Standard Schema V1 without affecting internal field error state [source](./references/docs/reference/classes/FieldApi.md)
  • NEW: form.parseValuesWithSchema() — form-level Standard Schema V1 validation helper for third-party schemas like Zod or Valibot [source](./references/docs/reference/classes/FormApi.md)
  • NEW: formOptions() — helper to define reusable, type-safe form options with inference outside of the useForm hook [source](./references/docs/reference/functions/formOptions.md)
  • NEW: Field component — declarative Vue component alternative to useField for defining form fields directly in templates [source](./references/docs/framework/vue/reference/variables/Field.md)
  • NEW: Subscribe component — Vue component for fine-grained subscriptions to form or field state changes to optimize re-renders [source](./references/docs/framework/vue/reference/interfaces/VueFormApi.md)
  • NEW: useStore() — Vue hook providing direct, reactive access to the underlying TanStack Store state for the form or field [source](./references/docs/framework/vue/reference/functions/useStore.md)
  • NEW: resetField()FormApi method to reset a specific field's value and metadata back to its default state [source](./references/docs/reference/classes/FormApi.md)
  • NEW: clearFieldValues()FormApi utility to efficiently remove all items from an array field's data [source](./references/docs/reference/classes/FormApi.md)
  • NEW: setErrorMap() — allows manual overriding of the internal validation error map for custom validation logic [source](./references/docs/reference/classes/FieldApi.md)
  • NEW: StandardSchemaV1 — native support for the Standard Schema validation protocol across all validator fields [source](./references/docs/reference/type-aliases/StandardSchemaV1.md)
  • NEW: mode option — UseFieldOptions now supports explicit 'value' or 'array' modes for better type safety in complex forms
  • NEW: disableErrorFlat — new option in FieldApiOptions to opt-out of automatic error flattening introduced in v1.28.0 [source](./references/releases/@tanstack/vue-form@1.28.0.md)

Also changed: resetFieldMeta() new helper · insertFieldValue() array utility · moveFieldValues() array utility · swapFieldValues() array utility · FieldApi.getInfo() metadata helper · VueFieldApi interface stabilization · VueFormApi interface stabilization

Best Practices

  • Use formOptions() to define type-safe, reusable form configurations that can be shared across components or used for better type inference [source](./references/docs/reference/functions/formOptions.md)
const options = formOptions({
  defaultValues: { email: '' },
  validators: {
    onChange: z.object({ email: z.string().email() })
  }
})

const form = useForm(options)
  • Link field validations with onChangeListenTo to trigger re-validation when dependent field values change, such as password confirmations [source](./references/docs/framework/vue/guides/linked-fields.md)

      value !== fieldApi.form.getFieldValue('password') ? 'Passwords do not match' : undefined
  }"
>
  • Implement async-debounce-ms at the field or validator level to throttle expensive asynchronous validation calls like API checks [source](./references/docs/framework/vue/guides/validation.md)
 checkUsername(value)
  }"
>
  • Parse Standard Schemas manually within onSubmit to retrieve transformed values, as the form state preserves the raw input data [source](./references/docs/framework/vue/guides/submission-handling.md)
const form = useForm({
  onSubmit: ({ value }) => {
    // schema.parse converts string to number if transform is defined
    const validatedData = loginSchema.parse(value)
    api.submit(validatedData)
  }
})
  • Pass custom metadata via onSubmitMeta to differentiate between multiple submission actions within a single onSubmit handler [source](./references/docs/framework/vue/guides/submission-handling.md)
Save Draft
Publish
  • Combine canSubmit with isPristine to ensure the submit button remains disabled until the user has actually interacted with the form [source](./references/docs/framework/vue/guides/validation.md)

  Submit
  • Use form.useStore with a selector in `` for granular, reactive access to form state without re-rendering on unrelated changes [source](./references/docs/framework/vue/guides/validation.md)
const canSubmit = form.useStore((state) => state.canSubmit)
  • Enable asyncAlways: true when you need asynchronous validators to execute regardless of whether synchronous validation has already failed [source](./references/docs/framework/vue/guides/validation.md)
// Runs async validation even if local regex check fails
const validators = {
  onChange: ({ value }) => !value.includes('@') ? 'Invalid' : undefined,
  onChangeAsync: async ({ value }) => api.check(value),
  asyncAlways: true
}
  • Return a fields mapping from form-level validators to update errors across multiple fields simultaneously from a single validation logic [source](./references/docs/framework/vue/guides/validation.md)
validators: {
  onChange: ({ value }) => ({
    fields: {
      startDate: value.startDate > value.endDate ? 'Must be before end' : undefined,
      endDate: value.startDate > value.endDate ? 'Must be after start' : undefined
    }
  })
}
  • Use reactive objects for defaultValues when binding the form to dynamic or asynchronous data sources like TanStack Query [source](./references/docs/framework/vue/guides/async-initial-values.md)
const { data } = useQuery(...)
const defaultValues = reactive({
  name: computed(() => data.value?.name ?? '')
})
const form = useForm({ defaultValues })

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.