个人笔记
文章平均质量分 75
记录实际开发过程的一些实现思路,以及日常学习笔记
Koen_Lee
不会日语的自定义音乐人不是好前端
展开
-
Vue长列表优化实践(infinite-list Renderless组件)
在任何前端项目中,当页面内某处的列表数据量较多时,如果不做任何处理直接循环整个列表数组对象,就会一股脑的把这成百上千个DOM节点全部渲染出来,但我们实际能看到的列表项可能也就那么几条十几条,这些可视区之外成百上千个DOM节点显然都是不必要的性能开销,数据量要是再大一些,卡顿和崩溃都无法避免。可视区高度就是上图中的viewportHeight,每一个列表项的高度就是上图中的itemHeight(包括内容高度和边框、内外边距),当列表开始滚动时,滚动过的距离就是上图中的scrollTop。原创 2023-04-14 17:58:20 · 1007 阅读 · 0 评论 -
elementUI 表单项自定义校验设置必填项required的问题
使用elementUI的表单校验有时需要用到默认校验和自定义校验的组合规则,比如下面这种部分表单项需要根据其他非input内容是否为空进行校验。原创 2023-01-30 17:20:04 · 5049 阅读 · 4 评论 -
移动端页面切出应用导致文件上传失败的后续处理
今天遇到一个Vue移动端项目的小问题,在一个表单提交页面进行批量上传图片的过程中途,从当前应用切出去一段时间,再切回当前应用时,发现图片一直处于上传中的状态,只能通过刷新或返回上一页重置,如下图所示。不管切出标签页还是切出整个浏览器应用,都会触发这个事件,而这个事件会对document的visibilityState属性进行修改,页面打开的时候默认为"visible",切出后。看到这里,首先想到的是监听当前标签页切换,然后根据事件触发的状态变更进行随后的逻辑处理。原创 2022-12-01 13:36:25 · 288 阅读 · 0 评论 -
Vue + Vant + Vuex前端缓存实现带搜索和可点选路径的移动端树形选单列表实践(1)
本篇要记录的是一个完整功能里的其中一部分,这个功能需求大致是在移动端给所选分组下的管理员用户留言,管理员用户可在PC端对留言用户进行回复,而这个功能中除了移动端和PC管理端的列表操作,还涉及一个重要的功能模块——,大概长下图这样:由于移动端项目之前没有这种功能的存量代码,因此需要从零开始手动实现。下面开始记录实现过程和思路。原创 2022-10-19 21:36:08 · 2638 阅读 · 6 评论 -
Vue项目中富文本编辑器组件二次封装实践
最近接到一个小需求,要求对原项目的富文本编辑器进行统一化。由于之前没有具体的规范约束,该PC端项目中在不同模块中分别引入了3种不一样的富文本编辑器,一来不便于维护,二来样式不统一,用户使用也可能存在疑惑,于是我需要考虑重新封装一个富文本编辑器组件,再将旧代码中引入的富文本编辑器组件统一替换为新的。以下记录整个任务实现的大致思路原创 2022-10-10 16:42:05 · 1518 阅读 · 2 评论 -
Vue + 原生Canvas实现生成电子证书的实践
上次写完笔记后发现还是挺有用的,就考虑以后还是继续不定期记录一下,复盘之前开发过程中的思路并激发一些新的灵感,还是蛮不错的。这次要记录的是之前做过的一个电子证书的小功能。需求非常非常简单,只需要把背景图和动态的文本合成并生成一个图片文件即可。当然,这个需求的实现方式有多种多样,最简单的直接html+css无脑堆样式然后用插件转换成图就行,也不会有任何性能问题。不过为了顺便复习一下我那吃灰吃的都快包浆了的Canvas的知识,这次就直接选择了Canvas渲染的方式。原创 2022-10-13 13:39:05 · 3490 阅读 · 0 评论