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 相关文章推荐
jquery ajax return没有返回值的解决方法
Oct 20 Javascript
js采用map取到id集合组并且实现点击一行选中一行
Dec 16 Javascript
js左右弹性滚动对联广告代码分享
Feb 19 Javascript
JavaScript实现的简单幂函数实例
Apr 17 Javascript
使用jQuery实现Web页面换肤功能的要点解析
May 12 Javascript
解决AngualrJS页面刷新导致异常显示问题
Apr 20 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
微信小程序实现下拉刷新和轮播图效果
Nov 21 Javascript
Angular5.1新功能分享
Dec 21 Javascript
js+canvas实现简单扫雷小游戏
Jan 22 Javascript
vue 点击其他区域关闭自定义div操作
Jul 17 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 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&amp;&amp;mysql)一
2006/10/09 PHP
php-accelerator网站加速PHP缓冲的方法
2008/07/30 PHP
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
php导入模块文件分享
2015/03/17 PHP
js获取location.href的参数实例代码
2013/08/02 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
vue搜索和vue模糊搜索代码实例
2019/05/07 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
Python实现简单状态框架的方法
2015/03/19 Python
Python的Django框架中if标签的相关使用
2015/07/15 Python
python3 与python2 异常处理的区别与联系
2016/06/19 Python
django之常用命令详解
2016/06/30 Python
Python爬取成语接龙类网站
2018/10/19 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
农业资源与环境专业自荐信范文
2013/12/30 职场文书
个人评价范文分享
2014/01/11 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
疾病证明书
2015/06/19 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
Python list列表删除元素的4种方法
2021/11/01 Python
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
win7配置本地ftp服务器的图文教程
2022/08/05 Servers