以下是 Vue3 富文本编辑器全面指南,涵盖主流方案、实现场景、常见问题及最佳实践:
一、主流 Vue3 富文本编辑器方案
1. Tiptap (推荐)
- 特点:基于 ProseMirror,无头设计,高度可定制,支持协同编辑
- 安装:
npm install @tiptap/vue-3 @tiptap/starter-kit
- 基础示例:
<template> <editor-content :editor="editor" /> </template> <script setup> import { useEditor, EditorContent } from '@tiptap/vue-3' import StarterKit from '@tiptap/starter-kit' const editor = useEditor({ content: '<p>Hello World!</p>', extensions: [StarterKit] }) </script>
2. Quill
- 特点:轻量级,模块化设计,丰富的主题系统
- 安装:
npm install @vueup/vue-quill@next quill
- 示例:
<template> <QuillEditor theme="snow" v-model:content="content" /> </template> <script setup> import { QuillEditor } from '@vueup/vue-quill' import '@vueup/vue-quill/dist/vue-quill.snow.css'; const content = ref('<p>Hello Quill!</p>') </script>
二、常见场景实现方案
1. 表单数据绑定
<template>
<!-- Tiptap -->
<editor-content :editor="editor" @update="handleUpdate" />
<!-- Quill -->
<QuillEditor v-model:content="formData.content" />
</template>
<script setup>
// Tiptap 双向绑定
const editor = useEditor({ /* ... */ })
const handleUpdate = ({ editor }) => {
formData.value.content = editor.getHTML()
}
// Quill 直接使用 v-model
</script>