当前位置: 首页 > news >正文

使用formio和react实现在线表单设计

formiojs 是一个开源的在线表单设计工具,今天看看怎样在 react js 中使用 formiojs。

  1. 首先创建一个react工程
npx create-react-app my-react-formio-app
  1. 安装依赖
cd my-react-formio-app
npm install @formio/react
npm install @formio/js

另外,考虑样式等问题,还安装了下面几个依赖包

npm install bootstrap 
npm install react18-json-view
npm install react-bootstrap
npm install font-awesome
  1. 创建组件

这里创建一个简单的页面组件,主要包括三部分,第一部分是表单设计器,第二部分是表单预览,第三部分是表单JSON数据。

在 src 下创建文件 MyBuilder.js,内容如下:

import { FormBuilder, Form } from "@formio/react";
import { useState } from "react";
import ReactJson from "react18-json-view";
import { Container, Row, Col, Button, Accordion } from "react-bootstrap";const MyBuilder = () => {const [jsonSchema, setSchema] = useState({ components: [] });const onFormChange = (schema) => {setSchema({ ...schema, components: [...schema.components] });};const handleSubmit = (data) => {console.log(data);}return (<><Container><Row><Col ><Accordion defaultActiveKey="0"><Accordion.Item eventKey="0"><Accordion.Header>Builder</Accordion.Header><Accordion.Body><FormBuilder form={jsonSchema} onChange={onFormChange} /></Accordion.Body></Accordion.Item></Accordion></Col></Row><Row><Col ><Accordion defaultActiveKey="0"><Accordion.Item eventKey="0"><Accordion.Header>Form</Accordion.Header><Accordion.Body><Form form={jsonSchema} onSubmit={handleSubmit} /></Accordion.Body></Accordion.Item></Accordion></Col></Row><Row><Col ><Accordion defaultActiveKey="0"><Accordion.Item eventKey="0"><Accordion.Header>JSON Schema</Accordion.Header><Accordion.Body><ReactJson src={jsonSchema} name={null} collapsed={true}></ReactJson></Accordion.Body></Accordion.Item></Accordion></Col></Row></Container></>);
};export default MyBuilder;
  1. 导入并渲染自定义组建

修改 src/App.js 文件,内容如下:

import React from 'react';
import MyBuilder from './MyBuilder';import 'font-awesome/css/font-awesome.min.css';
import 'bootstrap/dist/css/bootstrap.min.css';
import '@formio/js/dist/formio.full.min.css';
import './App.css';function App() {return (<div className="App"><MyBuilder /></div>);
}export default App;
  1. 启动应用
npm start
  1. 访问应用

访问 http://localhost:3000/ 即可看到效果。可以在页面的表单设计中拖动组件,然后在表单预览中查看效果。

参考:
https://github.com/formio/react
https://formio.github.io/react-app-starterkit/#/

http://www.lryc.cn/news/340436.html

相关文章:

  • MySQL 基础使用
  • ✌粤嵌—2024/4/3—合并K个升序链表✌
  • 企业微信主体的修改方法
  • C++的封装(十):数据和代码分离
  • 第十五届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组(基础题)
  • 模板的进阶
  • 微服务中Dubbo通俗易懂讲解及代码实现
  • Unity HDRP Release-Notes
  • Chrome将网页保存为PDF的实战教程
  • zotero7+Chat GPT实现ai自动阅读论文
  • STM32外设配置以及一些小bug总结
  • 【数据结构与算法】:10道链表经典OJ
  • Python SQL解析和转换库之sqlglot使用详解
  • NULL—0—nullptr 三者关系
  • Nginx 请求的 匹配规则 与 转发规则
  • OWASP发布10大开源软件风险清单
  • 大学生前端学习第一天:了解前端
  • 公安机关人民警察证照片采集规范及自拍制作电子版指南
  • 使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel
  • 【备忘录】openssl记录
  • hadoop编程之工资序列化排序
  • OpenXR手部跟踪接口与VIVE OpenXR扩展详细解析
  • 慎投!5本On Hold全被剔除!新增9本SCI/SSCI被除名!4月WOS更新
  • 华为云CodeArts IDE For Python 快速使用指南
  • C# 截图并保存为图片
  • [html]一个动态js倒计时小组件
  • Hive-Sql复杂面试题
  • WPS二次开发系列:WPS SDk功能就概览
  • 华为OD-C卷-结队编程[200分]
  • 连连看游戏页面网站源码,直接使用