# vue3-tinymce
**Repository Path**: jsdawn/vue3-tinymce
## Basic Information
- **Project Name**: vue3-tinymce
- **Description**: vue3-tinymce 是基于 vue@3.x + tinymce@6.1.2 封装的富文本编辑器
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 6
- **Forks**: 1
- **Created**: 2022-11-14
- **Last Updated**: 2025-04-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 使用指南
`vue3-tinymce` 是基于 `vue@3.x` + `tinymce@6.1.2` 封装的富文本编辑器。
[](https://github.com/jsdawn/vue3-tinymce)
[](https://www.npmjs.com/package/@jsdawn/vue3-tinymce)
[](https://www.tiny.cloud/docs/tinymce/6/)
**详细文档地址:[vue3-tinymce 富文本编辑器](https://note.qscoding.com/guide/vue3-tinymce.html)**
vue2版本demo地址:[tinymce-vue2-demo](https://github.com/jsdawn/tinymce-vue2-demo.git)
## 为什么
在开发管理台项目的时候有富文本编辑的功能需求,封装为组件方便使用。
个人开发一套完美的富文本编辑器难度大且耗时,在挑选插件中发现 tinymce editor 背景和功能都非常强大,并且文档清晰。基于 `tinymce` 封装组件是一个非常好的选择。
该组件清晰易懂,可自行修改为 vue2 版本使用。期待你的 Star ,发现问题可以提到 issues 👏
## 组件特色
### 开箱即用
组件内置按需加载 `tinymce@6.1.2` 版本 cdn 资源。使用 `v-if` 在必要时渲染组件。
组件包含 `tinymce@6.1.2`, 属性 `script-src` 可自定义 tinymce 静态资源路径。支持绝对路径和网络地址。
稳定使用:建议将 tinymce 资源包放到项目根目录,使用绝对路径。
### 拓展图片上传
本组件拓展了 `插入图片` 的图片上传部分,重写 `setting.images_upload_handler`,上传成功回填编辑器插入图片数据,关联 toolbar 和 plugins 中的 `image`。
```js
{
// 开启组件拓展的 上传图片功能,工具栏 图片按钮 弹框中出现 `upload` 选项
custom_images_upload: true,
// 复用 图片上传 api 地址
images_upload_url: 'your_upload_api_url...',
// 上传成功回调函数,return 图片地址。默认 response.location
custom_images_upload_callback: response => response.url,
// 上传 api 请求头
custom_images_upload_header: { 'X-Token': 'xxxx' }
// 上传 api 额外的参数。图片默认 file
custom_images_upload_param: { id: 'xxxx01', age: 18 }
}
```
## 快速上手
### NPM 使用
下载组件
```sh
npm install @jsdawn/vue3-tinymce
```
在 vue3 中使用
```vue
```
稳定使用静态资源包(推荐):
在 `node_modules` 目录中找到 `@jsdawn/vue3-tinymce`,将 `@jsdawn/vue3-tinymce/dist/tinymce` 目录复制到项目根目录的 `public/tinymce`,
然后传入 组件的 `script-src`:
```vue
```
### 自定义组件使用
前往 [Vue3Tinymce 仓库](https://github.com/jsdawn/vue3-tinymce) 获取 `packages/Vue3Tinymce` 组件文件,Copy 到自己项目中使用。setting 选项配置参照 [tinymce 官方文档](https://www.tiny.cloud/docs/tinymce/6/)
## 组件属性
| 名称 | 类型 | 描述 |
| ------------ | ---------- | ------------------------------------------------------------------------------------------------ |
| `modelValue` | `String` | 绑定值/内容,建议以 `v-model` 的形式使用 |
| `script-src` | `String` | 自定义 `tinymce` 静态资源,支持绝对路径和网络地址。内置按需加载 `tinymce@6.1.2` |
| `setting` | `Object` | 设置项,延用官方 [tinymce 设置](https://www.tiny.cloud/docs/tinymce/6/editor-important-options/) |
| `setup` | `Function` | 编辑器设置时的回调,回调参数 editor 实例,在此将编辑器事件添加到 TinyMCE 中 |
| `disabled` | `Boolean` | 是否禁用编辑器输入操作 |
| `@change` | `Function` | 编辑器监听到 `change input undo redo` 时触发,回调参数为编辑器 content |
| `@init` | `Function` | 编辑器初始化完成后触发,回调参数 `editor` 实例 |
## 使用示例
点击前往 [使用示例](https://note.qscoding.com/guide/vue3-tinymce.html)
## 更新日志
### v1.1.7
_`2020-01-19`_
_Feature_
- 拓展图片上传:自定义图片上传请求头 `setting.custom_images_upload_header`
### v2.0.2
_`2022-09-23`_
_Feature_
- 升级 `tinymce` 版本,从 v5.8.x 版本升级到 `v6.1.2`。新增 `tinymce@6.1.2` 静态资源包,位置在 `dist/tinymce` 目录