vue-quill-editor 添加图片上传和缩放组件
起因
最近测试同学测试富文本编辑器的时候发现数据库报错,我检查了一下发现,富文本在数据库中使用的是text类型,可以存 65535 ,一般的文案再多也不可能这么多吧。于是测试了一下前端后台界面,没想到前端坑死人,竟然把图片给我转成了 base64 传过来,那不超过最大长度才怪。
优化
肯定是不能怎么搞的,于是让前端给我改一下,没想到他居然说不能改,做不了,竟然还想骗我。 好吧,好歹我也是从前后端不分离的时代过来的,虽然前端布局啥的不会搞,简单的js语法还是懂的。 于是测试了好几个 quill 编辑器的插件,竟然没有一个好用,各种报错,比如 '# 'imports' of undefined','undefined (reading 'register')',又是改webpack.base.js,又是改vue.config.js,结果一个都没用。 浪费了一上午的时间,差点有点绝望了。
到了下午,灵机一动,翻看那几个用不了的插件 github 问题(issue)列表,发现有人发了自己写的新版组件,大喜。
于是测试了一下,完美。yarn add quill-image-super-solution-module quill-resize-module
具体用法见文档,非常清晰,这个后端都能搞定。
图片删除
另外图片删除后需要调用后端接口同步删除,这里可以监听一下编辑器里的文本变化事件 代码如下:
editor.on('text-change',
(delta, oldContents, source) => {
if (source !== 'user') return;
const inserted = getImgUrls(delta);
const deleted = getImgUrls(editor.getContents().diff(oldContents));
inserted.length && console.log('insert', inserted)
deleted.length && console.log('delete', deleted)
});
function getImgUrls(delta) {
return delta.ops.filter(i => i.insert && i.insert.image).map(i => i.insert.image);
}
总结
- 对于后端程序员来说,还是需要懂一些前端,一方面前后端要协调,少不了要知道一些前端知识;另外一方面,可以解决某些前端认为不能解决的问题。
- 组件不更新后的解决办法,看 github issue 列表。
- 尽量不要用那些没有维护的组件吧,也不知道我们这边的前端怎么选的。
作者:半山
出处:http://www.cnblogs.com/xdao/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2013-04-08 love2d游戏1--1942game(一)