详解vue中如何创建多个ueditor
最近工作中要求升级,需要在vue中创建多个ueditor实例,我使用neditor,其实就是把ueditor样式美化了下,其他和ueditor几乎一样,下面话不多说了,来一起看看详细的介绍吧。
截图
说明
下载ueditor或neditor源码,拷贝到static目录下面
然后修改ueditor.config.js配置文件
在vue项目的main.js添加ueditor引用
新建3个页面 home,tab1,tab2。tab1和tab2是home下面的子页面
在router-view外面一定要添加keep-alive组件和transition组件,不然ueditor实例无法保存
在components文件夹下面新建一个editor作为编辑器的公共组件
在tab1中调用editor,同时要传入一个id并在editor页面接受,注意如果需要多个实例,id一定不能相同
<template> <p> <editor ref="editor" id="tab1Editor"></editor> <button @click="getContent" class="m-t-10">获取内容</button> <p> <span>当前富文本编辑器内容是: {{content}}</span> </p> </p> </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> <p> <p :id="this.id"></p> </p> </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>
相关推荐:
详细介绍php UEditor百度编辑器安装和使用的方法分享
以上就是详解vue中如何创建多个ueditor的详细内容,更多请关注其它相关文章!
上一篇: 表单标签元素 - 尼农小道
下一篇: 怎么用ps修改pdf文字
推荐阅读
-
单台服务器中利用Apache的VirtualHost如何搭建多个Web站点详解
-
详解如何在Vue2中实现组件props双向绑定
-
vue组件文档(.md)中如何自动导入示例(.vue)详解
-
如何在Vue.js中实现标签页组件详解
-
详解在Vue中如何使用axios跨域访问数据
-
详解如何创建并发布一个 vue 组件
-
vue 使用element-ui中的Notification自定义按钮并实现关闭功能以及如何处理多个通知
-
Linux中如何查看文件的创建时间详解
-
在Linux中如何一次重命名多个文件详解
-
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知