前言:最近写东西须要用到ueditor,而且须要是在vue组件中引入。html
(本博客默认你已经配置了laravel+vue的项目环境,若是尚未配置好的的小伙伴,能够看看个人另外一篇博客,连接:vue
http://www.cnblogs.com/meng1314-shuai/p/7136049.html
)laravel
一、下载editorelement-ui
这个直接去ueditor的官网下载其PHP版本的就能够了,没什么好说的dom
二、移到项目目录中(主要讲如何放置配置文件和静态资源文件)编辑器
打开下载好的ueditor目录,若是版本没有错也没出什么问题,应该就会看到以下目录及文件函数
这里面:ueditor.all.js、ueditor.config.js、ueditor.parse.js以及lang/zh-cn/zh-cn.js 是咱们须要拿来在vue中加载的配置文件,因此我直接放在了resources/assets/js目录下(固然这里咱们推荐的是引入这些配置文件对应的.min.js的文件,若是有的话。。。还有放置的目录也能够本身定义,工具
不过这里咱们为了方便区分和引入,因此就按前面说的目录来放了),像这样ui
固然,放置好了配置文件,剩下的四个目录咱们就直接放在laravel默认的静态资源目录public/js下面,像这样:this
三、定义公共的ueditor组件(方面多处引用)
这里一样为了方便引入,咱们直接在ueditor的配置文件的同级目录下新建UEditor.vue组件
而后编写咱们的ueditor组件,这里为了方便喜欢“偷懒”小伙伴们😄,就不放图片了,直接上代码(是否是很贴心)
<template>
<div :id="id">
</div>
</template>
<style scoped>
</style>
<script>
import './ueditor.config.js'
import './ueditor.all.min.js' //引入相应的配置文件,具体路径请根据本身配置文件放置的路径以及公共组件定义的路径自行修改
import './ueditor.parse.min.js'
import './lang/zh-cn/zh-cn.js'
export default {
props: {
},
data(){
return {
id: Math.ceil(Math.random()*100000) + 'editor'
}
},
mounted() {
this.editor = UE.getEditor(this.id) // 获取编辑器实例化的对象
},
methods: {
getUEContent() { // 获取内容方法
return this.editor.getContent()
}
}
}
</script>
好了,咱们的公共编辑器组件就已经定义好啦。
可能会有些小伙伴以为ueditor的工具栏实在是太多了,好多都是本身几乎用不到的,放在那里占地方不说,还下降了咱们项目的加载速度,这里也许有些看过ueditor.config.js 配置文件的小伙伴应该会看到这样一项配置:
这里咱们看到它的注释已经明确的告诉咱们它的做用了:工具栏上的全部的功能按钮和下拉框,能够在new编辑器的实例时选择本身须要的从新定义
因此很简单了,想要精简编辑器的小伙伴们能够直接在咱们的公共ueditor组件的生命周期函数mounted里覆盖此配置就好啦,附上一个我本身配置的代码:
mounted() {
window.UEDITOR_CONFIG.toolbars = [[
'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', '|',
'rowspacingtop', 'rowspacingbottom', 'lineheight', '|', 'fontfamily', 'fontsize'
]]
this.editor = UE.getEditor(this.id)
}
四、使用ueditor组件
到这里咱们已经能够直接在咱们其余任意的vue组件里使用咱们的公共组件了:
在script标签中直接引入公共组件的UEditor.vue 文件,像这样:import UE from '../editor/UEditor.vue';
而后注册该组件:
components: {
UE
}
接下来咱们就能够直接在template模板中使用UE组件了:
<template lang="html">
<div id="add">
<div id="myueditor">
<UE ref="ue"></UE>
</div>
</div>
</template>
这里咱们使用了ref给组件注册了引用信息,这样咱们就能够在这个父组件里调用咱们编辑器组件的获取内容方法getUEContent()(这个方法调用了ueditor的getContent()方法,忘记的小伙伴能够去上面或者本身的代码里回顾一下),像这样:
<button @click="getUEContent()">获取内容</button>//模版里定义一个button绑定getUEContent()方法
而后注册getUEContent()方法:
methods: {
getUEContent() {
let content = this.$refs.ue.getUEContent();//在这里调用了子组件ueditor组件的getContent()方法
this.$notify({
title: '获取成功,可在控制台查看!',
message: content,
type: 'success'
});
console.log(content)
}
}
好了,大功告成,赶忙去试试你的编辑器吧!
转载请注明出处哦http://www.cnblogs.com/meng1314-shuai/p/7204405.html