我是靠谱客的博主 娇气铅笔,这篇文章主要介绍Vue中使用富文本编辑器wangEditor(包括图片上传),现在分享给大家,希望可以做个参考。

​​​​1.vue中安装wangEditor

使用npm安装:npm install wangeditor --save

2.创建公共组件

在components中创建editor文件

组件内容为:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<template lang="html"> <div class="editor"> <div ref="toolbar" class="toolbar"> </div> <div ref="editor" class="text"> </div> </div> </template> <script> import E from 'wangeditor' export default { name: 'Editorbar', data () { return { editor: null, info_: null } }, model: { prop: 'value', event: 'change' }, props: { value: { type: String, default: '' }, isClear: { type: Boolean, default: false } }, watch: { isClear (val) { // 触发清除文本域内容 if (val) { this.editor.txt.clear() this.info_ = null } }, value (val) { // 使用 v-model 时,设置初始值 this.editor.txt.html(val) } }, mounted () { this.seteditor() }, methods: { seteditor () { this.editor = new E(this.$refs.toolbar, this.$refs.editor) this.editor.customConfig.uploadImgShowBase64 = true // base 64 存储图片 this.editor.customConfig.uploadImgServer = this.$api.getJavaEndPoint() + 'web/oss/jqupload' // 配置服务器端地址(这里的this.$api.getJavaEndPoint()是自己定义的一个地址前缀) this.editor.customConfig.uploadFileName = 'files[]' // 后端接受上传文件的参数名 // 配置菜单 this.editor.customConfig.menus = [ 'head', // 标题 'bold', // 粗体 'fontSize', // 字号 'fontName', // 字体 'italic', // 斜体 'underline', // 下划线 'strikeThrough', // 删除线 'foreColor', // 文字颜色 'backColor', // 背景颜色 'link', // 插入链接 'list', // 列表 'justify', // 对齐方式 'quote', // 引用 'emoticon', // 表情 'image', // 插入图片 'table', // 表格 'video', // 插入视频 'code', // 插入代码 'undo', // 撤销 'redo' // 重复 ] this.editor.customConfig.uploadImgHooks = { fail: function (xhr, editor, result) { this.$message({ message: '图片上传失败', type: 'warning' }); }, error: function (xhr, editor) { this.$message.error('图片上传出错'); }, success: (xhr, editor, result) => { // 图片上传成功回调 }, customInsert: (insertImg, result, editor) => { // 图片上传成功,插入图片的回调 insertImg(this.$api.getPicPrefix()+result.data.files[0].url) } } this.editor.customConfig.onchange = (html) => { this.info_ = html // 绑定当前逐渐地值 this.$emit('change', this.info_) // 将内容同步到父组件中 } // 创建富文本编辑器 this.editor.create() } } } </script> <style lang="css"> .editor{ width:700px; margin:0 auto; } .toolbar { border: 1px solid #ccc; } .text { border: 1px solid #ccc; height:300px } </style>

3.在父组件中调用

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<template> <div> <editor v-model="value" :isClear='isClear'></editor> </div> </template> <script> import editor from '../../../components/editor' export default { components: { editor }, data() { return { isClear: false, value:"" } }, } </script>

 

总结:富文本编辑器有很多种,本文用的是wangEditor,其实在Vue中使用富文本编辑器是很简单的,有点麻烦的是富文本编辑器中的图片上传,刚开始做的时候比较棘手,其实想通了就好了:其中的逻辑就是,首先,上传图片是要上传到服务器,然后返回给你的是图片的url,只需要在图片上传成功的插入图片的回调中使用insertImg函数把图片显示在富文本中即可。我使用富文本编辑器的业务逻辑是:新增使用富文本编辑器上传(包括图片)=>详情里显示内容(包括图片)=>编辑里也使用富文本编辑器编辑,新增和编辑就是用上面自己写的组件就行(可以上传图片),详情的话,在你新增的时候富文本内容已经绑定一个值,详情显示只需要绑定这个值即可。

最后

以上就是娇气铅笔最近收集整理的关于Vue中使用富文本编辑器wangEditor(包括图片上传)的全部内容,更多相关Vue中使用富文本编辑器wangEditor(包括图片上传)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部