开始

在 Nuxt 中使用

模块把 14 个组件全部注册成自动导入,模板里一个 import 都不用写。

配置

模块的配置键是 editUi。KunUI 的 Nuxt 层必须一并 extends,组件用到的 Kun* 与图标都由它提供。

nuxt.config.ts
// nuxt.config.ts
export default defineNuxtConfig({
  // KunUI 的 Nuxt 层:自动导入全部 Kun* 组件,并把
  // NuxtLink / @nuxt/icon / @nuxt/image 注入 KunUI 的配置。
  extends: ['@kungal/ui-nuxt'],

  modules: ['@nextmoe/edit-ui-nuxt'],

  css: ['~/assets/css/main.css'],

  editUi: {
    prefix: 'Edit', // 默认值。<SchemaForm> 注册为 <EditSchemaForm>
    global: false   // 默认值:按需(懒)注册
  }
})

用起来

所有组件都带上配置的前缀,无需 import。

pages/edit.vue
<template>
  <EditSchemaForm
    :fields="fields"
    :values="values"
    :config="config"
    :group-order="['基础', '媒体']"
    layout="tabs"
    @update:patch="(patch) => (draft = patch)"
  />

  <EditFieldDiff label="标题" diff-hint="inline" :from="a" :to="b" />
  <EditReviewQueue v-model:status="status" :items="open" :label-for="labelFor" />
</template>

prefix 才是这个模块存在的理由

它让一次迁移可以不改任何模板。

如果你的站点原本在本地维护了一份同族组件,把 prefix 设成你原来的前缀(例如 prefix: 'Editkit'),现有的 <EditkitSchemaForm> 标签一个字都不用动。组件名来自 @nextmoe/edit-ui-vue 导出的 EDIT_UI_COMPONENT_NAMES,所以模块永远不会和包本身的组件清单对不上。

global 选项

默认 false,即 Nuxt 的懒注册:组件只在真正用到的那个 chunk 里出现。设为 true 会把它们放进全局 bundle,只有在需要动态标签名(<component :is>)时才有必要。