Skip to content
/ vue Public

Javascript Powered forms and JSON form builder for Vue.js

License

Notifications You must be signed in to change notification settings

formio/vue

Repository files navigation

@formio/vue

A Vue.js component for rendering out forms based on the Form.io platform.

Install

npm

Vue Formio can be used on the server, or bundled for the client using an npm-compatible packaging system such as Browserify or webpack.

npm install @formio/vue --save

Basic Usage

HTML inside of Vue template file:

<template>
  <div id="app">
    <formio src="" url="" form="" submission="" options="" v-on:submit=""></formio>
  </div>
</template>

Javascript inside of Vue template file.

<script>
  import { Form } from '@formio/vue';
  export default {
      name: 'app',
      components: { formio: Form },
  }
</script>

Props

src : string

The form API source from form.io or your custom formio server.

See the Creating a form for where to set the API Path for your form.

You can also pass in the submission url as the src and the form will render with the data populated from the submission.

url : string

If you pass in the form and submission directly, some components such as resources, files and forms need to know the url of the form on the server. Pass it in with the url option.

form : object

An object representing the form. Use this instead of src for custom forms.

Note: src will override this property if used.

submission: Object

An object representing the default data for the form.

Note: src will override this if a submission url is entered.

options: object

An object with the formio.js options that is passed through. See Form.io Options.

Events

All events triggered from the form are available via the v-on property. See Form.io Events for all the available events.

Then on the form set <formio src="myform" v-on:submit="doSomething" />

FormBuilder

HTML inside of Vue template file:

<template>
  <div id="app">
    <formbuilder v-bind:form="{display: 'form'}" v-bind:options="{}" v-on:change="(schema) => console.log(schema)"></formbuilder>
  </div>
</template>

Javascript inside of Vue template file.

<script>
  import { FormBuilder } from '@formio/vue';
  export default {
      name: 'app',
      components: { FormBuilder },
  }
</script>

Form Actions

Get access to the form instance

<template>
  <div id="app">
    <formio ref="formioForm"></formio>
  </div>
</template>

Run a method

this.$refs.formioForm.formio.submit()

All methods are available here https://help.form.io/developers/form-renderer#form-methods

License

Released under the MIT License.