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 相关文章推荐
js简单实现交换Li的值
May 22 Javascript
用box固定长宽实现图片自动轮播js代码
Jun 09 Javascript
JavaScript设计模式之代理模式介绍
Dec 28 Javascript
javascript二维数组转置实例
Jan 22 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
Mar 04 Javascript
jQuery实现自动调整字体大小的方法
Jun 15 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
微信小程序中实现一对多发消息详解及实例代码
Feb 14 Javascript
vue-router 学习快速入门
Mar 01 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
May 14 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
Sep 22 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
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
解析php取整的几种方式
2013/06/25 PHP
php读取mysql的简单实例
2014/01/15 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
JavaScript(JS) 压缩 / 混淆 / 格式化 批处理工具
2010/12/10 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
2015/12/12 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
javascript淘宝主图放大镜功能
2016/10/20 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
JS实现百度搜索框
2021/02/25 Javascript
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
上班早退检讨书
2014/01/09 职场文书
农村婚礼证婚词
2014/01/10 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
大学生见习总结报告
2015/06/24 职场文书
LeetCode189轮转数组python示例
2022/08/05 Python