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 相关文章推荐
IE与FireFox中的childNodes区别
Oct 20 Javascript
用js格式化金额可设置保留的小数位数
May 09 Javascript
node.js中的path.join方法使用说明
Dec 08 Javascript
Underscore.js 1.3.3 中文注释翻译说明
Jun 25 Javascript
jquery中取消和绑定hover事件的实现代码
Jun 02 Javascript
基于angularJS的表单验证指令介绍
Oct 21 Javascript
关于 jQuery Easyui异步加载tree的问题解析
Dec 06 Javascript
JS实现的DIV块来回滚动效果示例
Feb 07 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
使用vue制作探探滑动堆叠组件的实例代码
Mar 07 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 Javascript
js加减乘除精确运算方法实例代码
Jan 17 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
德生PL330测评
2021/03/02 无线电
玛琪朵 Macchiato
2021/03/03 咖啡文化
php获取当月最后一天函数分享
2015/02/02 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
基于jquery的Repeater实现代码
2010/07/17 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
微信小程序 设置启动页面的两种方法
2017/03/09 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
小程序如何获取多个formId实现详解
2019/09/20 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
美国著名的团购网站:Woot
2016/08/02 全球购物
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
房屋转让协议书
2014/10/18 职场文书
营销经理工作检讨书
2014/11/03 职场文书
个人党性分析总结
2015/03/05 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
九不准学习心得体会
2016/01/23 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
Java版 简易五子棋小游戏
2022/05/04 Java/Android