安装方式
Reactive Form 模型层没有任何第三方依赖。视图层分为 React 版和 Vue 版,除了安装 Reactive Form 外,还需要安装 React 17+ 以及 ReactDOM 17+ 或 Vue 3.2.37+。
使用 yarn 或 npm 下载
yarn add rcfm
npm install rcfm --save
使用打包工具引用
Reactive Form 的 npm 包中含有完整的模型层和视图层资源,并提供了 subpath exports 以方便对资源的引用,请确保使用的 Node 和打包工具已更新到支持该特性的版本,否则会出现引用错误。
Reactive Form 的样式文件包含 css 和 sass 两种版本,如需在 js 中引用,请正确配置打包工具的 sass 或 css loader/plugin。
import 'rcfm/style' // 引入样式
import React from 'react'
import ReactDOM from 'react-dom/client'
import { Form } from 'rcfm' // 引入模型
import { UI } from 'rcfm/react' // 引入视图
const {reactive} = Form.create() // 实例化模型
const Builder = UI.use('React.View.Form.Builder') // 使用视图
ReactDOM.createRoot(
document.getElementById('root')
).render(
<Builder reactive={reactive} />
)
import 'rcfm/style' // 引入样式
import * as Vue from 'vue'
import { Form } from 'rcfm' // 引入模型
import { UI } from 'rcfm/vue' // 引入视图
const {reactive} = Form.create() // 实例化模型
const Builder = UI.use('Vue.View.Form.Builder') // 使用视图
Vue.createApp({
setup() { return {reactive} },
components: {Builder},
template: `<Builder :reactive="reactive" />`
}).mount('#root')
使用 sass 版样式
如需覆盖 sass 变量,可以在 sass 入口文件中引入 sass 版本的样式和自定义变量。
// 自定义变量
@import 'path_to_your_sass_variables'
// sass 版样式文件
@import 'path_to_node_modules/rcfm/src/ui/style/index'
之后,与其他 js 文件一起引用。
import 'path_to_your_sass_entry' // sass 入口文件
import React from 'react'
import ReactDOM from 'react-dom/client'
import { Form } from 'rcfm' // 引入模型
import { UI } from 'rcfm/react' // 引入视图
const {reactive} = Form.create() // 实例化模型
const Builder = UI.use('React.View.Form.Builder') // 使用视图
ReactDOM.createRoot(
document.getElementById('root')
).render(
<Builder reactive={reactive} />
)
import 'path_to_your_sass_entry' // sass 入口文件
import * as Vue from 'vue'
import { Form } from 'rcfm' // 引入模型
import { UI } from 'rcfm/vue' // 引入视图
const {reactive} = Form.create() // 实例化模型
const Builder = UI.use('Vue.View.Form.Builder') // 使用视图
Vue.createApp({
setup() { return {reactive} },
components: {Builder},
template: `<Builder :reactive="reactive" />`
}).mount('#root')
在浏览器中直接引用
如果项目不基于包管理器和打包工具开发,可以在 HTML 中直接引入 cdn 上的 Reactive Form 资源文件。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hi rcfm ~</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
<link rel="stylesheet" href="https://unpkg.com/rcfm/dist/css/rcfm.style.min.css">
</head>
<body>
<h1>Hi rcfm ~</h1>
<script src="https://unpkg.com/rcfm/dist/js/rcfm.model.iife.min.js"></script>
<script src="https://unpkg.com/rcfm/dist/js/rcfm.helper.iife.min.js"></script>
<script src="https://unpkg.com/react/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom/umd/react-dom.production.min.js"></script>
<script src="https://unpkg.com/rcfm/dist/js/rcfm.react.iife.min.js"></script>
<script>
console.log(Object.keys(ReactiveForm))
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hi rcfm ~</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">
<link rel="stylesheet" href="https://unpkg.com/rcfm/dist/css/rcfm.style.min.css">
</head>
<body>
<h1>Hi rcfm ~</h1>
<script src="https://unpkg.com/rcfm/dist/js/rcfm.model.iife.min.js"></script>
<script src="https://unpkg.com/rcfm/dist/js/rcfm.helper.iife.min.js"></script>
<script src="https://unpkg.com/vue/dist/vue.global.prod.js"></script>
<script src="https://unpkg.com/rcfm/dist/js/rcfm.vue.iife.min.js"></script>
<script>
console.log(Object.keys(ReactiveForm))
</script>
</body>
</html>
在 NodeJS 中使用模型
const { Form } = require('rcfm') // 引入模型
const {reactive} = Form.create() // 实例化模型