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入门指引
Jul 28 Javascript
JS实现浏览器状态栏显示时间的方法
Oct 27 Javascript
JavaScript组合模式学习要点
Aug 26 Javascript
详解jQuery uploadify文件上传插件的使用方法
Dec 16 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
Dec 23 Javascript
AngularJS实现图片上传和预览功能的方法分析
Nov 08 Javascript
JS实现面向对象继承的5种方式分析
Jul 21 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
vuex actions异步修改状态的实例详解
Nov 06 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
Apr 07 Javascript
jQuery实现简单三级联动效果
Sep 05 jQuery
基于 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
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
PHP页面间传递值和保持值的方法
2016/08/24 PHP
Yii2框架类自动加载机制实例分析
2018/05/02 PHP
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
jQuery链使用指南
2015/01/20 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
Python实现Linux中的du命令
2017/06/12 Python
Python使用wxPython实现计算器
2018/01/30 Python
Python使用functools实现注解同步方法
2018/02/06 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
Python如何实现机器人聊天
2020/09/10 Python
Charlotte Tilbury美国官网:英国美妆品牌
2017/10/13 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
个性婚礼策划方案
2014/05/17 职场文书
煤矿安全协议书
2014/08/20 职场文书
领导班子整改措施
2014/10/24 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
员工给公司的建议书
2019/06/24 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS