@retailcrm/vue-formulario

Vue Formulario is a library, inspired by Vue Formulate , that handles the core logic for working with forms and gives full control on the form presentation.
86,689 3
Install
npm install @retailcrm/vue-formulario
Latest Version:0.8.3
Vue:2
License:MIT
Last Updated:Dec 6, 2024
Links: GitHub  ·  npm
Maintainer: retailcrm

What is Vue Formulario?

Vue Formulario is a library, inspired by Vue Formulate, that handles the core logic for working with forms and gives full control on the form presentation.

Examples

Every form control have to rendered inside FormularioField component. This component provides id and context in v-slot props. Control should use context.model as v-model and context.runValidation as handler for blur event (it is necessary for validation when property validationBehavior is demand). Errors list for a field can be accessed through context.allErrors.

The example below creates the authorization form from data:

{
    "username": "",
    "password": "",
    "options": {
        "anonymous": false,
        "tags": ["test"]
    }
}
<FormularioForm
    v-model="formData"
    name="formName"
>
    <FormularioField
        v-slot="{ context }"
        name="username"
        validation="required|email"
        validation-behavior="live"
    >
        <input
            v-model="context.model"
            type="text"
            @blur="context.runValidation"
        >
        <div v-if="context.allErrors.length > 0">
            <span
                v-for="(error, index) in context.allErrors"
                :key="index"
            >
                {{ error }}
            </span>
        </div>
    </FormularioField>

    <FormularioField
        v-slot="{ context }"
        name="password"
        validation="required|min:4,length"
    >
        <input
            v-model="context.model"
            type="password"
        >
    </FormularioField>

    <FormularioFieldGroup name="options">
        <FormularioField
            v-slot="{ context }"
            name="anonymous"
        >
            <div>
                <input
                    id="options-anonymous"
                    v-model="context.model"
                    type="checkbox"
                >
                <label for="options-anonymous">As anonymous</label>
            </div>
        </FormularioField>
    </FormularioFieldGroup>

    <FormularioField
        v-slot="{ context }"
        name="options.tags[0]"
    >
        <input
            v-model="context.model"
            type="text"
        >
    </FormularioField>
</FormularioForm>

License

MIT

Copyright (c) 2020-present, RetailDriver LLC Copyright (c) 2020-present, Braid LLC

Related Packages

@braid/vue-formulate

The easiest way to build forms in Vue.

451,602 2,238
vue-formulate

The easiest way to build forms in Vue with validation and vuex support.

4,367 7
vue-yup-form

Headless form validation with Vue and Yup

17,480 30
@apticlab/estia

The easiest way to build site in Vue.

3,679 0

Version History

Version Released License
0.8.3 MIT