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 相关文章推荐
用 Javascript 验证表单(form)中多选框(checkbox)值
Sep 08 Javascript
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
js变量以及其作用域详解
Jul 18 Javascript
原生js实现给指定元素的后面追加内容
Apr 10 Javascript
教你在heroku云平台上部署Node.js应用
Jul 30 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
Jan 23 Javascript
JS获取元素多层嵌套思路详解
May 16 Javascript
jQuery窗口拖动功能的实现代码
Feb 04 Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 Javascript
微信小程序 同步请求授权的详解
Aug 04 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
Aug 17 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
Jan 26 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 安装配置方法和问题解决
2009/06/08 PHP
PHP 全角转半角实现代码
2010/05/16 PHP
php 注释规范
2012/03/29 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
jquery miniui 教程 表格控件 合并单元格应用
2012/11/25 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
JS实现点击复选框将按钮或文本框变为灰色不可用的方法
2015/08/11 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
JS实现图片垂直居中显示小结
2016/12/13 Javascript
js定时器实例分享
2016/12/20 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
Python reduce()函数的用法小结
2017/11/15 Python
Django使用HttpResponse返回图片并显示的方法
2018/05/22 Python
使用python对文件中的数值进行累加的实例
2018/11/28 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
python__name__原理及用法详解
2019/11/02 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
销售顾问工作计划书
2014/09/15 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
python pyhs2 的安装操作
2021/04/07 Python