在 Vue3 中使用富文本编辑器需要结合第三方库实现,以下是详细指南包含主流方案、常用功能、常见问题及最佳实践:
一、主流富文本编辑器选型
-
Quill
- 特点:轻量级、模块化设计、扩展性强
- 包名:
quill
+@vueup/vue-quill
(Vue3封装)
-
TinyMCE
- 特点:功能全面、商业版功能强大、官方提供Vue组件
- 包名:
@tinymce/tinymce-vue
-
CKEditor 5
- 特点:现代编辑器、协作编辑功能、官方Vue支持
- 包名:
@ckeditor/ckeditor5-vue
-
WangEditor
- 特点:中文友好、MIT协议、配置简单
- 包名:
wangeditor
二、安装与基础集成(以 Quill 为例)
npm install quill @vueup/vue-quill
<template>
<div class="editor-container">
<QuillEditor
v-model:content="content"
contentType="html"
:toolbar="toolbarOptions"
@ready="handleEditorReady"
/>
</div>
</template>
<script setup>
import { ref } from 'vue';
import { QuillEditor } from '@vueup/vue-quill';
import '@vueup/vue-quill/dist/vue-quill.snow.css';
const content = ref('<p>初始内容</p>');
const toolbarOptions = [
['bold', 'italic', 'underline'],
[{ 'header': [1, 2, 3, false] }],
['image', 'code-block']
];
const handleEditorReady = (editor) => {
console.log('Editor实例:', editor);
};
</script>
三、常用功能实现
1. 图片上传(自定义处理)
// Quill 示例
import {
Quill } from 'quill';
import ImageUploader from 'quill-image-uploader';
Quill.register('modules/imageUploader', ImageUploader);
const modules = {