vue中如何创建多个ueditor实例教程


Posted in Javascript onNovember 14, 2017

前言

前一段时间公司Vue.js项目需要使用UEditor富文本编辑器,在百度上搜索一圈没有发现详细的说明,决定自己尝试,忙活了一天终于搞定了。

具体可以参考这篇文章:https://3water.com/article/118413.htm

ueditor是百度编辑器,官网地址:http://ueditor.baidu.com/website/

完整的功能演示,可以参考:http://ueditor.baidu.com/website/onlinedemo.html

最近工作中要求升级,需要在vue中创建多个ueditor实例,我使用neditor,其实就是把ueditor样式美化了下,其他和ueditor几乎一样,下面话不多说了,来一起看看详细的介绍吧。

截图

vue中如何创建多个ueditor实例教程

说明

下载ueditor或neditor源码,拷贝到static目录下面

vue中如何创建多个ueditor实例教程

然后修改ueditor.config.js配置文件

vue中如何创建多个ueditor实例教程

在vue项目的main.js添加ueditor引用

vue中如何创建多个ueditor实例教程

新建3个页面 home,tab1,tab2。tab1和tab2是home下面的子页面

vue中如何创建多个ueditor实例教程

在router-view外面一定要添加keep-alive组件和transition组件,不然ueditor实例无法保存

在components文件夹下面新建一个editor作为编辑器的公共组件

在tab1中调用editor,同时要传入一个id并在editor页面接受,注意如果需要多个实例,id一定不能相同

<template>
 <div>
 <editor ref="editor" id="tab1Editor"></editor>
 <button @click="getContent" class="m-t-10">获取内容</button>
 <div>
 <span>当前富文本编辑器内容是: {{content}}</span>
 </div>
 </div>
 </template>

 <script>
 import Editor from '@/components/editor'
 export default {
 name: 'tab1',
 components: { Editor },
 data() {
 return {
 content:''
 }
 },
 methods: {
 //获取内容
 getContent(){
 this.content = this.$refs.editor.content
 }
 }
 }
 </script>

 <style scoped>
 .m-t-10{
 margin-top: 10px;
 }
 </style>

editor页面代码,因为我们在router-view套用了keep-alive,所以ueditor的初始化一定要放在activated里面,
确保每次进入页面都会重新渲染ueditor,在deactivated里面调用ueditor的destroy方法,确保每次离开页面的时候
会销毁编辑器实例,这样就可以渲染多个ueditor实例了,并且每次切换都能保存编辑器的内容。

如果多个tab只需要一个实例请调用reset()方法

<template>
 <div>
 <div :id="this.id"></div>
 </div>
 </template>

 <script>
 export default {
 name: 'editor',
 props: ['id'],
 data() {
 return {
 ue: '', //ueditor实例
 content: '', //编辑器内容
 }
 },
 methods: {
 //初始化编辑器
 initEditor() {
 this.ue = UE.getEditor(this.id, {
 initialFrameWidth: '100%',
 initialFrameHeight: '350',
 scaleEnabled: true
 })
 //编辑器准备就绪后会触发该事件
 this.ue.addListener('ready',()=>{
 //设置可以编辑
 this.ue.setEnabled()
 })
 //编辑器内容修改时
 this.selectionchange()
 },
 //编辑器内容修改时
 selectionchange() {
 this.ue.addListener('selectionchange', () => {
 this.content = this.ue.getContent()
 })
 }
 },
 activated() {
 //初始化编辑器
 this.initEditor()
 },
 deactivated() {
 //销毁编辑器实例,使用textarea代替
 this.ue.destroy()
 //重置编辑器,可用来做多个tab使用同一个编辑器实例
 //如果要使用同一个实例,请注释destroy()方法
 //this.ue.reset()
 }
 }
 </script>

源码地址

github:https://github.com/oblivioussing/vue-ueditor-multi

本地下载:http://xiazai.3water.com/201711/yuanma/vue-ueditor-multi(3water.com).rar

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
PJ Blog修改-禁止复制的代码和方法
Oct 25 Javascript
javascript 写类方式之二
Jul 05 Javascript
javascript常用函数归纳整理
Oct 31 Javascript
JavaScript中的this机制
Jan 30 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
Jun 07 Javascript
javascript弹出窗口中增加确定取消按钮
Jun 24 Javascript
Javascript中作用域的详细介绍
Oct 06 Javascript
JavaScript通过filereader接口读取文件
May 10 Javascript
JS实现前端页面的搜索功能
Jun 12 Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 Javascript
Vue在页面数据渲染完成之后的调用方法
Sep 11 Javascript
vue视图不更新情况详解
May 16 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 #Javascript
Node之简单的前后端交互(实例讲解)
Nov 14 #Javascript
Angular移动端页面input无法输入的解决方法
Nov 14 #Javascript
使用Vue-Router 2实现路由功能实例详解
Nov 14 #Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 #Javascript
js实现数组内数据的上移和下移的实例
Nov 14 #Javascript
vue router使用query和params传参的使用和区别
Nov 13 #Javascript
You might like
phpmyadmin的#1251问题
2006/11/25 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
2016/10/03 PHP
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
node.js入门教程
2014/06/01 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
javascript常见操作汇总
2014/09/03 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Node.js创建Web、TCP服务器
2017/12/05 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
webuploader实现上传图片到服务器功能
2018/08/16 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
日本著名的平价时尚女性购物网站:Fifth
2016/08/24 全球购物
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
办公室秘书自我鉴定
2014/01/18 职场文书
村级个人对照检查材料
2014/08/22 职场文书
免职证明样本
2014/10/23 职场文书
行政文员岗位职责
2015/02/04 职场文书
入队仪式主持词
2015/07/04 职场文书
MySQL中in和exists区别详解
2021/06/03 MySQL
mysql 带多个条件的查询方式
2021/06/05 MySQL
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL