@schemx/vue 0.1.22 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -16
- package/dist/analyze.html +4949 -0
- package/dist/components/FormGroup/index.d.ts +1 -1
- package/dist/components/FormItem/index.d.ts +13 -6
- package/dist/components/FormItem/index.d.ts.map +1 -1
- package/dist/hocs/withRemoteOptions.d.ts +2 -2
- package/dist/hooks/index.d.ts +8 -4
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/provideFieldContext.d.ts +41 -0
- package/dist/hooks/provideFieldContext.d.ts.map +1 -0
- package/dist/hooks/provideFormConfigContext.d.ts +59 -0
- package/dist/hooks/provideFormConfigContext.d.ts.map +1 -0
- package/dist/hooks/provideFormContext.d.ts +57 -0
- package/dist/hooks/provideFormContext.d.ts.map +1 -0
- package/dist/hooks/useDictionary.d.ts +1 -1
- package/dist/hooks/useDictionary.d.ts.map +1 -1
- package/dist/hooks/useEffect.d.ts +1 -1
- package/dist/hooks/useField.d.ts +1 -32
- package/dist/hooks/useField.d.ts.map +1 -1
- package/dist/hooks/useForm.d.ts +30 -32
- package/dist/hooks/useForm.d.ts.map +1 -1
- package/dist/hooks/useViewSchemas.d.ts +1 -1
- package/dist/hooks/useWatch.d.ts +1 -1
- package/dist/index.cjs +1 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +208 -6311
- package/dist/index.mjs.map +1 -1
- package/dist/types/dictionary.d.ts +1 -1
- package/dist/types/field.d.ts +1 -1
- package/dist/types/form.d.ts +1 -1
- package/dist/utils/dynamic.d.ts +1 -1
- package/dist/utils/helpers.d.ts +1 -1
- package/dist/utils/rendererProvider.d.ts +1 -1
- package/dist/utils/rulesProvider.d.ts +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/package.json +12 -8
- package/dist/hooks/useContext.d.ts +0 -52
- package/dist/hooks/useContext.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# @schemx/vue
|
|
2
2
|
|
|
3
|
-
Vue 3 adapter for schemx.
|
|
4
|
-
|
|
5
3
|
`@schemx/vue` 将 `@schemx/core` 的表单实例和 ViewSchemas 渲染为 Vue 组件树。它不绑定具体 UI 组件库,适合接入业务组件、设计系统或新的 UI adapter。
|
|
6
4
|
|
|
7
5
|
如果项目使用 Vant,推荐直接安装 [`@schemx/vant`](../vant)。该包已经注册好常用移动端表单 renderer。
|
|
@@ -17,9 +15,11 @@ Vue 3 adapter for schemx.
|
|
|
17
15
|
## 安装
|
|
18
16
|
|
|
19
17
|
```bash
|
|
20
|
-
pnpm add @schemx/vue vue
|
|
18
|
+
pnpm add @schemx/vue @schemx/core vue
|
|
21
19
|
```
|
|
22
20
|
|
|
21
|
+
`@schemx/core` 是 `@schemx/vue` 的 peer dependency,业务项目需要显式安装。
|
|
22
|
+
|
|
23
23
|
## 快速开始
|
|
24
24
|
|
|
25
25
|
`@schemx/vue` 默认不提供具体输入控件。使用前需要注册 renderer:
|
|
@@ -68,7 +68,7 @@ rendererRegistry.register("input", markRaw(InputRenderer))
|
|
|
68
68
|
</template>
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
`@schemx/vue`
|
|
71
|
+
`@schemx/vue` 的 ESM 入口会自动加载基础样式,常规 Vite / Vue 项目不需要手动引入。直接使用 CommonJS 入口或构建工具未处理入口 CSS import 时,请显式引入 `@schemx/vue/style.css`。
|
|
72
72
|
|
|
73
73
|
## 自定义 Renderer
|
|
74
74
|
|
|
@@ -119,18 +119,39 @@ rendererRegistry.register("input", InputRenderer)
|
|
|
119
119
|
|
|
120
120
|
## Composition API
|
|
121
121
|
|
|
122
|
-
| API
|
|
123
|
-
|
|
|
124
|
-
| `useForm()`
|
|
125
|
-
| `
|
|
126
|
-
| `
|
|
127
|
-
| `
|
|
128
|
-
| `
|
|
129
|
-
| `
|
|
130
|
-
| `
|
|
131
|
-
| `
|
|
132
|
-
| `
|
|
133
|
-
| `
|
|
122
|
+
| API | 说明 |
|
|
123
|
+
| --------------------------- | -------------------------------------------------------------------------- |
|
|
124
|
+
| `useForm()` | 创建由当前 Vue effect scope 管理生命周期的表单实例;不会自动执行 `provide` |
|
|
125
|
+
| `createFormContext()` | 向后代组件提供表单实例 |
|
|
126
|
+
| `useFormContext()` | 获取上层提供的表单实例 |
|
|
127
|
+
| `useField()` | 创建字段级读写、校验和状态控制器 |
|
|
128
|
+
| `createFieldContext()` | 向后代组件提供字段控制器 |
|
|
129
|
+
| `useFieldContext()` | 获取当前字段控制器 |
|
|
130
|
+
| `createFormConfigContext()` | 向后代组件提供表单展示配置 |
|
|
131
|
+
| `useFormConfigContext()` | 获取上层提供的表单展示配置 |
|
|
132
|
+
| `useWatch()` | 按单字段、多字段或全表签名监听变化 |
|
|
133
|
+
| `useWatchField()` | 监听单个字段 |
|
|
134
|
+
| `useWatchFields()` | 监听多个字段 |
|
|
135
|
+
| `useWatchAll()` | 监听整张表单 |
|
|
136
|
+
| `useDictionary()` | 管理依赖字段的远程或本地选项 |
|
|
137
|
+
| `useEffect()` | 创建字段依赖追踪 effect,并在 scope 销毁时清理 |
|
|
138
|
+
| `useStableRef()` | 创建引用保持稳定的 `shallowRef` |
|
|
139
|
+
| `useViewSchemas()` | 把 `subscribeViewSchemas()` 桥接为 Vue `shallowRef` |
|
|
140
|
+
|
|
141
|
+
## 根入口导出
|
|
142
|
+
|
|
143
|
+
以下内容均可直接从 `@schemx/vue` 引入:
|
|
144
|
+
|
|
145
|
+
| 分类 | API |
|
|
146
|
+
| --------------- | ------------------------------------------------------------------------------------------------------------- |
|
|
147
|
+
| 表单组件 | 默认导出的表单组件、命名导出的 `schemxForm`、`FormItem`、`FormGroup` |
|
|
148
|
+
| 全局注册表 | `rendererRegistry`、`validatorRegistry` |
|
|
149
|
+
| Composition API | 上表中的全部 context、field、watch、dictionary、effect 和 ViewSchemas API |
|
|
150
|
+
| 高阶组件 | `WithRemoteOptions` |
|
|
151
|
+
| 类型 | `SchemxInstallOptions`、`SchemxDictionary`、`SchemxWithDictionary`、`UseDictionaryReturn`、`FormContextProps` |
|
|
152
|
+
| Core API | `@schemx/core` 根入口的全部公开 API 与类型 |
|
|
153
|
+
|
|
154
|
+
`schemxForm` 与默认导出指向同一个可安装组件。`@schemx/vue` 不额外导出命名为 `SchemxForm` 的组件;需要该命名时,可以在业务代码中自行给默认导入命名。
|
|
134
155
|
|
|
135
156
|
## Adapter 边界
|
|
136
157
|
|