# ClassicDataView · Classic 数据视图

为通用 DataView 连接产品界面。open 和 layouts 可由宿主替换，正文仍保存可移植数据视图。

为通用 DataView 连接产品界面。open 和 layouts 可由宿主替换，正文仍保存可移植数据视图。

`@quirekit/classic-editor` · **AGPL-3.0-only**

## 编辑器适用范围
层次：**Classic 产品适配**
| 编辑器 | 状态 | 所需装配与边界 |
| --- | --- | --- |
| Classic | 直接支持 | 这是可选的 Classic 产品扩展，加入 createClassicEditor 的 extensions。宿主继续负责资源、持久化与相应样式；它不是 plugins 中的产品插件。 |
| Block | 未支持 | Block 不消费 Classic 产品 contribution、plugins 或分页装配。请使用共享能力和 Block 适配入口，不能直接复制此入口的 Classic 配置。 |

“直接支持”指已有上述产品装配；具体交互、宿主服务和格式支持仍有各自条件。[状态与接入规则](/plugins/compatibility)。许可独立显示。

## 接入

```sh
pnpm add @quirekit/classic-editor@alpha
```

这是可选的产品扩展，将它加入 `createClassicEditor` 创建选项的 `extensions`；它仍然遵循 Core Extension 合同。

```ts
import { ClassicDataView } from '@quirekit/classic-editor'
```

安装时按包声明选择兼容版本，外部可用版本以分发源为准。本站使用工作区 Alpha；许可标签来自入口所属包，使用条件见[支持与许可](/support)。

## 按编辑器接入

以下片段沿用已挂载的宿主元素 `element`，宿主负责容器尺寸与保存；退出页面时调用 `instance.destroy()`。已有预设装配的能力不要再重复追加；需要宿主端口的入口应先完成下方配置。

### Classic

这是可选的 Classic 产品扩展，加入 createClassicEditor 的 extensions。宿主继续负责资源、持久化与相应样式；它不是 plugins 中的产品插件。

```ts
import { createClassicEditor } from '@quirekit/classic-editor'
import '@quirekit/classic-editor/styles.css'
import { ClassicDataView } from '@quirekit/classic-editor'

const instance = createClassicEditor({
  element,
  extensions: [ClassicDataView],
})
```

### Block

Block 不消费 Classic 产品 contribution、plugins 或分页装配。请使用共享能力和 Block 适配入口，不能直接复制此入口的 Classic 配置。

## 配置

下面是扩展自身的默认选项。预设可以覆盖这些值；它们不等于当前文档属性。配置方法见[配置插件](/plugins/configuration)。

### open

打开捕获目标的编辑工作区，返回可释放的界面任务。异步提交时仍需校验原目标。

类型：`(request: DataViewEditRequest, editor: QuireEditor): { close(): void; }`

默认：`open`

### layouts

返回宿主提供的布局 provider 注册，供数据视图参与当前引擎排版。

类型：`(): { layoutDependency: { kind: "document"; }; id: string; nodeTypes: readonly string[]; capabilities: readonly QuireLayoutProviderCapabilityKind[]; provider: QuireLayoutProvider; }[]`

默认：`() => [dataViewLayout()]`

## 命令与运行方式

以下命令由此扩展直接提供，均在当前 Editor 上调用。命令是否可用由已安装 schema、当前选区与保护策略决定；可以先用 `editor.can()` 查询。

| 命令 | 参数签名 |
| --- | --- |
| `insertDataView` | `insertDataView(input: DataViewInsertion)` |
| `replaceDataView` | `replaceDataView(input: DataViewReplacement)` |

这里只展示参数签名。接界面时见[命令与控件](/build/commands)，正文变更继续经过同一事务与历史。

## 下一步

返回[全部插件](/plugins)，或阅读[配置插件](/plugins/configuration)区分配置、文档属性与命令。

继续[Classic 快速接入](/classic/quick-start)和[配置与生命周期](/classic/configuration)。开发自己的产品界面与服务时，见[产品插件开发](/build/product-plugin)。
