A list of all the Progressive Web Application frameworks supported by the Form.io platform.
JavaScript
At its core, the Form.io platform uses a plain JavaScript (aka Vanilla JavaScript) renderer to render the forms within an application. This renderer, as well as all documentation, can be found on Github @ https://github.com/formio/formio.js. For the full documentation, please take a look atForm Renderer Documentation in the help guides.
This renderer is able to easily render a form using the following code within your application either via Script embedding or application embedding.
Script Embedding
This allows the embedding of a form directly within an HTML application using the script tags within the header. The scripts and CSS that need to be included are as follows.
Navigate to the following link for more information about the Form.io CDNs
The Form Builder can also be embedded using the following code.
Application Embedding
The form renderer can also be embedded within an application by first including the formiojs renderer as an NPM dependency and then using the following code.
And the following CSS should also be included in your application SASS file.
For more documentation on the JavaScript renderer, please check out the following links.
TheAngularframework is a very popular PWA framework offered by Google. The Form.io integration libraries provide a simple wrapper around the JavaScript renderer library but expose a number of helper components and modules that enable rapid application development within the Angular framework.
To use this within your application, you will start by importing the dependencies via NPM.
Once the library is imported into your Angular application, you can render a form using the following code.
And then the following can be used within your templates to render a form.
There are many other modules and helper components within the Angular library, so we recommend checking out the list of other documentation and examples at the following links.
React is a popular JavaScript library for building PWA applications. It is maintained by Facebook. The Form.io integration libraries provide a simple wrapper around the JavaScript renderer library but expose a number of helper components and modules that enable rapid application development within React.
To use this within your application, you will start by importing the dependencies via NPM.
Once the library is imported into your React application, you can render a form using the following code.
Form components provide many helpful properties which allow you to configure your form. Here are the most common of them.
If you need to take more control of the wrapped formio Form instance (e.g., conditionally prepopulate it with some data, or control the behavior of a few components inside the form), you can use formReady prop and save the form instance using React Ref.
There are many other modules and helper components within the React library, so we recommend checking out the list of other documentation and examples at the following links.
React and Form.io both use the word "components" to refer to discreet modules of reusable code, but they are distinctly different and the difference must be understood.
In React, components are UI building blocks that render elements on the page, while in Form.io, components are data-driven form elements that power dynamic forms, workflows, and APIs. Form.io components are not just the data field UI, they define data structures, validation, and API interactions, to create a fully integrated form and data management system.
React Wrapper
Form.io provides a React wrapper that makes embedding forms in a React application completely seamless. Developers should not try to import custom React components directly into Form.io forms. Instead, use the React wrapper to integrate the rendered forms seamlessly alongside any other React component. This allows for tight integration with React’s state management, event handling, and styling, while still benefiting from the Form.io Platform's schema-driven approach.
Integrating forms with the React wrapper
Rather than treating the Form.io Platform as an isolated system, the React wrapper integrates a React app and the Form.io form engine.
Forms may trigger React state updates, listen to events, and interact with other components in the app without breaking the schema-driven approach of Form.io
This ensures:
Separation of concerns: Control of the broader application’s UI is handled entirely by React, while the the form’s behavior is handled entirely with the Form.io Platform.
Scalabilty: The app remains scalable without needing to modify form components at the code level.
Flexibility: The Form.io Platform's JSON-driven forms stay flexible and dynamic while still aligning with the application’s design system.
Vue
The Form.io Vue renderer allows integration with the popularVue.js framework.
There are many other modules and helper components within the Vue library, so we recommend checking out the list of other documentation and examples at the following links.
This library is meant to be used in conjunction with Form.io to provide dynamic JSON form rendering capabilities. This allows you to render any form using the schemas provided by Form.io.
The following snippet of code will dynamically render the form within Form.io, as well as automatically hook that form up to the REST API generated from the same schema.
Installation
There are several ways to add this library to your application. Each of these installation types are for specific use cases.
Full Installation
Includes: Everything including Angular.js and jQuery.
Usage: Use this installation if your application does not already have Angular and jQuery and you wish to display a single form on a page.
Installation: Place the following within your application.
Complete Installation
Includes: Everything except Angular.js and jQuery
Usage: Use this if you are embedding a form within an application that already has Angular.js and jQuery installed.
Installation: Place the following within your application.
Basic Installation: (Bower Installation)
Includes: Only the ngFormio renderer library with no dependencies.
Usage: When you wish to explicitely include all of the dependencies like when you are usingWiredep.
Installation: We recommend usingWiredep for the Basic installation since it will wire up all the dependencies for you. You just need to place the following within your application.
First install the dependency using Bower
Then, you can add the following to your application.
Then run Wiredep to wire it up.
We also recommend using this within aGulpbuild process using Wiredep in combination withGulp UseRef.
Usage
Now that you have the library installed, you can then do the following to add a form to your application.
This not only renders the form dynamically within your application, but also automatically hooks up that form to the API backend that is provided by Form.io.
To install this library into your application, you will need to run the following.
Then, you will need to add the following to your codebase.
Using this library
This library can be used to render dynamic JSON powered forms within any Angular Material application. This uses the exact same syntax as the <formio> component within theAngular Form.io Library. The only difference is that you will use the <mat-formio> directive instead.
For example, the following will render a dynamic JSON form within your application.
You can also use this to render JSON forms as follows.