vue中使用富文本编辑器,@tinymce/tinymce-vue

本文介绍了如何在Vue和React项目中集成和使用通用在线编辑器Tinymce,包括安装、组件导入、模板渲染、内容操作以及关键步骤——获取编辑器内容的示例代码。

       富文本就是在后台管理系统中常见的录入带格式的内容,如:表格,字体加粗,斜体,文字颜色等等,就像一个word一样。类似于这样的效果:

我们使用通用在线编辑器tinymce。支持vue和react。

1. 安装

npm i @tinymce/tinymce-vue -S   

要注意版本,我使用的是5.1.1。

2. 在vue组件里导入

import Editor from '@tinymce/tinymce-vue';

如果是选项式api的话,需要做组件注册。

3. 在模板上渲染

<Editor ref="editorref" :init="{plugins: 'wordcount'}" />

4. 操作富文本实例

editorref.value.getEditor()

5、获取内容【这是最关键的一步】

editorref.value.getEditor().getContent()

完整代码【使用element-plus和ts】:

<!-- 富文本 -->
<script lang="ts" setup>
import { ref } from "vue";
import Editor from '@tinymce/tinymce-vue'


const content = ref();

interface INews {
  title: string
}
const form = ref<INews>({
  title: ""
});
const editorRef = ref();

const addNews = () => {
  let data = {
    title: form.value.title,
    content: editorRef.value.getEditor().getContent()
  }

  console.log("data",data);
  content.value = data.content;
}


</script>

<template>
  <h1>富文本</h1>
  <el-form :model="form">
    <el-form-item label="标题">
      <el-input v-model="form.title" autocomplete="off" />
    </el-form-item>
    <editor ref="editorRef" :init="{
      height: 500,
      menubar: true,
      plugins: [
        'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'preview',
        'anchor', 'searchreplace', 'visualblocks', 'code', 'fullscreen',
        'insertdatetime', 'media', 'table', 'code', 'help', 'wordcount'
      ],
      toolbar: 'undo redo | blocks | ' +
        'bold italic forecolor | alignleft aligncenter ' +
        'alignright alignjustify | bullist numlist outdent indent | ' +
        'removeformat | help | image | table',
      content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }'
    }" />

    <el-form-item>
      <el-button @click="addNews">添加</el-button>
    </el-form-item>
  </el-form>

  <hr/>
  <div v-html="content"></div>
</template>

<style lang="scss" scoped></style>

使用 `npm install @tinymce/tinymce-vue -S` 安装 TinyMCEVue 封装组件时遇到报错,可能的原因和解决方法如下: 1. **依赖版本不兼容**:`@tinymce/tinymce-vue` 依赖于特定版本的 VueTinyMCE。如果 VueTinyMCE 版本与 `@tinymce/tinymce-vue` 不兼容,可能导致安装失败。建议检查当前项目的 Vue 版本,并根据 Vue 版本选择合适的 `@tinymce/tinymce-vue` 版本。例如,对于 Vue 2.x,需要使用 `@tinymce/tinymce-vue` 的 3.x 版本;对于 Vue 3.x,则应使用 `@tinymce/tinymce-vue` 的 4.x 或更高版本 [^3]。 2. **网络问题**:有时由于网络不稳定或 npm 镜像源的问题,安装可能会失败。可以尝试切换 npm 镜像源,例如使用淘宝的 npm 镜像: ```bash npm config set registry https://registry.npmmirror.com ``` 3. **权限问题**:在某些操作系统上,可能需要管理员权限才能全局安装包。可以尝试在命令前加上 `sudo`(适用于 macOS 和 Linux): ```bash sudo npm install @tinymce/tinymce-vue -S ``` 4. **缓存问题**:npm 缓存可能损坏,导致安装失败。可以尝试清除 npm 缓存: ```bash npm cache clean --force ``` 5. **Node.js 和 npm 版本问题**:确保使用的 Node.js 和 npm 版本与项目需求兼容。过时的版本可能导致安装失败。可以通过以下命令更新 Node.js 和 npm: ```bash # 更新 Node.js # 使用 nvm(Node Version Manager)来管理 Node.js 版本 nvm install --lts nvm use --lts # 更新 npm npm install -g npm ``` 6. **检查项目配置**:如果项目中存在 `package.json` 文件,确保其中没有冲突的依赖项或脚本。可以尝试创建一个新的测试项目,单独安装 `@tinymce/tinymce-vue`,以排除项目配置的影响。 7. **查看具体错误信息**:运行安装命令时,npm 会输出具体的错误信息。仔细阅读错误信息,通常可以找到问题的根源。例如,如果错误信息提示缺少某些依赖项,可以手动安装这些依赖项。 通过以上方法,应该能够解决 `npm install @tinymce/tinymce-vue -S` 报错的问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值