vue项目集成富文本编辑器

背景 :

公司后台实现一个富文本编辑功能,并且支持编辑后即时查看移动端效果和html代码,支持html代码一键复制。效果如图:

富文本编辑器选型 :

wangEditor 市面上还有很多富文本编辑器,百度编辑器等等,目前亲测wangEditor还不错,而且文档是中文编写,界面清新简单
官网 :https://www.wangeditor.com/v5/for-frame.html#%E4%BD%BF%E7%94%A8-1

代码 :

我这里vue版本是vue3,官网也有其他框架的demo

安装
// vue2
yarn add @wangeditor/editor
# 或者 npm install @wangeditor/editor --saveyarn add @wangeditor/editor-for-vue
# 或者 npm install @wangeditor/editor-for-vue --save// vue3
yarn add @wangeditor/editor
# 或者 npm install @wangeditor/editor --saveyarn add @wangeditor/editor-for-vue@next
# 或者 npm install @wangeditor/editor-for-vue@next --save

模板

<template><div>// 内容编辑区<div class="editor-wrap"><div class="editor" style="border: 1px solid #ccc"><Toolbarstyle="border-bottom: 1px solid #ccc":editor="editorRef":defaultConfig="toolbarConfig":mode="mode"/><Editorstyle="height: 585px; overflow-y: hidden"v-model="valueHtml":defaultConfig="editorConfig":mode="mode"@onCreated="handleCreated"@onChange="handleChange"/></div>// 效果展示区<div class="editor-view"><div v-html="viewHtmlValue"></div></div></div>// html代码展示区<div class="html-wrap"><h3>这里是生成的html :</h3><buttonstyle="margin: 20px 0; width: 80px; height: 32px"@click="onClickCopy(viewHtmlValue)">一键复制</button>// 注意这里要用textarea标签, 否则当内容超过边框高度不会自动滚动<textarea class="html-box" v-model="viewHtmlValue"> </textarea></div></div>
</template>

script

<script>
import '@wangeditor/editor/dist/css/style.css' // 引入 cssimport { onBeforeUnmount, ref, shallowRef, onMounted } from 'vue'
import { Editor, Toolbar } from '@wangeditor/editor-for-vue'export default {components: { Editor, Toolbar },setup () {const viewHtmlValue = ref('')// 编辑器实例,必须用 shallowRefconst editorRef = shallowRef()// 内容 HTML// const valueHtml = ref('<p>hello</p>')  // 默认内容const valueHtml = ref('')// 模拟 ajax 异步获取内容onMounted(() => {setTimeout(() => {// valueHtml.value = '<p>模拟 Ajax 异步设置内容</p>'valueHtml.value = ''}, 1500)})const toolbarConfig = {}const editorConfig = { placeholder: '请输入内容...' }// 组件销毁时,也及时销毁编辑器onBeforeUnmount(() => {const editor = editorRef.valueif (editor == null) returneditor.destroy()})const handleCreated = (editor) => {editorRef.value = editor // 记录 editor 实例,重要!}const handleChange = (editor) => {const html = editor.getHtml()viewHtmlValue.value = html// 控制编辑器按 tab 键时,输入什么,此处一个tab两个缩进, 默认是4个缩进editor.handleTab = () => editor.insertText('  ')// console.log(html, 'editor')}// 一键复制const onClickCopy = (viewHtmlValue) => {var input = document.createElement('textarea') // js创建一个textarea输入框input.value = viewHtmlValue // 将需要复制的文本赋值到创建的textarea输入框中document.body.appendChild(input) // 将输入框暂时创建到实例里面input.select() // 选中输入框中的内容document.execCommand('Copy') // 执行复制操作document.body.removeChild(input) // 最后删除实例中临时创建的textarea输入框,完成复制操作alert('复制成功')}return {viewHtmlValue,editorRef,valueHtml,mode: 'default', // 或 'simple'toolbarConfig,editorConfig,handleCreated,handleChange,onClickCopy}}
}
</script>

样式

<style lang="scss" scoped>
.html-wrap {margin-top: 30px;.html-box {width: 100%;height: 300px;border: 2px solid #ddd;}
}
.editor-wrap {padding-top: 30px;display: flex;justify-content: space-between;.editor {width: 70%;}.editor-view {overflow-y: auto;width: 375px;height: 667px;border: 2px solid #ddd;}.editor-view::-webkit-scrollbar {width: 0; //将滚动条隐藏不显示}
}
</style>

【其他】vue项目集成富文本编辑器相关推荐

  1. vue项目 vue-quill-editor富文本编辑器+图片上传

    目录 基础使用: 进阶版: 使用 el-upload 图片上传: 进阶版2.0: 可拖动调整图片大小: 基础使用: 富文本编辑器: 此方法得到的图片为base64编码,图片上传在下面. npm ins ...

  2. kind富文本编辑器_在项目中集成富文本编辑器

    前   言 现在学程序的都离不开 Markdown 语法了吧,Markdown 已经成为典型的转换为HTML的非正式规范和参考实现,现在市场上也出现了许多Markdown实现,在基本语法之上额外增加了 ...

  3. django快速集成富文本编辑器wangeditor

    django快速集成富文本编辑器wangeditor django是python栈一款优秀的web开发框架,也是python栈web开发框架中使用占比最高的开发框架,至于其是否足够优秀不言自明,自带的 ...

  4. yii2 html编辑器,浅析Yii2集成富文本编辑器redactor实例教程

    在上篇文章给大家介绍了如何在yii2中集成百度编辑器umeditor以及如何解决umeditor上传图片问题. 今天我们来谈谈yii2集成另外一个强大好用的富文本编辑器Redactor,个人觉得Red ...

  5. vue使用百度富文本编辑器(ueditor)

    文章目录 vue使用百度富文本编辑器(ueditor) 1.进入官网或者github下载源码 2.使用grunt编译 4.安装`vue-ueditor-wrap` 5.组件中引入,自定义组件 6.后端 ...

  6. java集成富文本编辑器UEditor

    JAVA集成富文本编辑器UEditor 集成前说明 集成UEditor 一.UEditor下载 二.UEditor迁入项目 三.引入ueditor中的js 四.初始化UEditor 五.实现图片上传 ...

  7. Flask博客实战 - 集成富文本编辑器Quill

    富文本编辑器Quill 为什么需要集成富文本编辑器? 一个博客最主要的功能是什么,那就是写作,如果不能对我们发布的内容进行排版美化,那么我们所发布的内容又有什么意义? 对于阅读者来说也是非常的不友好和 ...

  8. vue项目:集成富文本编辑器 - 百度ueditor(vue-ueditor-wrap)

    一.背景 集成百度ueditor,实现图文编辑 二.项目介绍 vue---nuxt项目 vue项目:ueditor(vue-ueditor-wrap) 三.集成步骤 3.1.下载富文本编辑器 GitH ...

  9. VUE 集成富文本编辑器及踩坑记录

    一.查看 vue版本和vue cli版本 首先要知道自己所使用的VUE 版本和 脚手架(VUE CLI)版本 这样自己无论是在百度的时候还是选择富文本编辑器对应版本的时候都方便很多 1.查看vue 版 ...

  10. Django项目中集成富文本编辑器的通用方法,适合KindEditor,xhEditor,NicEditor,wymeditor等 .

    首先,请参考我以前写的一篇博客:如何把nicEditor集成到django中使用 http://blog.csdn.net/huyoo/article/details/4382317 这篇文章中的做法 ...

最新文章

  1. 数据库监听。数据库一次notify,Activity多次接收
  2. android 获取第三方应用程序包名并启动,android 获取第三方应用程序包名并启动...
  3. gnu java_GNU/Linux下Java开发环境的安装和配置
  4. PHP生成Mysql数据字典
  5. 联想微型计算机怎么恢复系统,联想电脑台式一体机怎么重装系统 台式一体机重装系统...
  6. Spring中使用 InitializingBean
  7. 计算机硬件只能通过软件使用,日常软件分享 篇四:还在用鲁大师?查看电脑硬件信息可以用这些免费的软件!...
  8. 小情调的伤感空间日志分享:亲爱的、你还不懂么?
  9. 螺旋测微器 flash_Flash 101-第5部分:螺旋式失控
  10. 介绍两个测试网页打开速度的网站
  11. 未来:spring响应式编程 Hands-On Reactive Programming in Spring 5 ,为啥需要响应式编程
  12. 《公司的力量》纪录片
  13. 领导说“辛苦了”,千万别回“应该的”, 这是我听过最扎心的答案了!
  14. python操作键盘输入中文_用python从键盘读取原始输入
  15. 共识算法比较:Tendermint的BFT与EOS的dPoS
  16. 0603-0605读书报告
  17. 圆满收官,在这里读利尔达的2021
  18. 【esp8266】小黑板ESP8266无线wifi SoC方案连接机智云最详细图文教程
  19. 如何在不丢失游戏数据的情况下重置Nintendo Switch
  20. 网易新闻:无屌丝,不江湖

热门文章

  1. 短信接口防盗刷解决方案
  2. java项目开发教材_《Java Web开发实战》——Java工程师必备干货教材
  3. 资本寒冬下一个有娃女码农--应聘高级Android工程师历程感言
  4. 3dmax模型导入UE4
  5. 物业费管理java_java毕业设计_springboot框架的物业收费管理系统
  6. 《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇
  7. Word中的Visio图直接转换为图片
  8. 计算机考研数据结构参考书,2016计算机考研:数据结构参考书及其复习重点
  9. linux结课考试试题,Linux认证考试课后基础试题及答案
  10. 从B站源码里探索推荐算法的奥义