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 操作option的实现代码
Mar 03 Javascript
javascript笛卡尔积算法实现方法
Apr 08 Javascript
JavaScript关于提高网站性能的几点建议(一)
Jul 24 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
Feb 08 Javascript
基于构造函数的五种继承方法小结
Jul 27 Javascript
基于Vue框架vux组件库实现上拉刷新功能
Nov 28 Javascript
详解webpack模块加载器兼打包工具
Sep 11 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
基于vue-cli3和element实现登陆页面
Nov 13 Javascript
javascript事件循环event loop的简单模型解释与应用分析
Mar 14 Javascript
echarts实现获取datazoom的起始值(包括x轴和y轴)
Jul 20 Javascript
Node.js中的异步生成器与异步迭代详解
Jan 31 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
smarty section简介与用法分析
2008/10/03 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
使用PHP实现Mysql读写分离
2013/06/28 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
PHP实现类似题库抽题效果
2018/08/16 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
JS delegate与live浅析
2013/12/21 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
js模块加载方式浅析
2017/08/12 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
浅谈javascript中的prototype和__proto__的理解
2019/04/07 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
2019/10/16 jQuery
小程序点击图片实现png转jpg
2019/10/22 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[01:04:05]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
从Python程序中访问Java类的简单示例
2015/04/20 Python
Python决策树分类算法学习
2017/12/22 Python
python软件都是免费的吗
2020/06/18 Python
Python实现手绘图效果实例分享
2020/07/22 Python
Python对excel的基本操作方法
2021/02/18 Python
Hotels.com中国区:好订网
2016/08/18 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
羽毛球比赛策划方案
2014/06/13 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2015暑假假期总结
2015/07/13 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle