工作中的遇到的一些小知识 2
一个合法检测的Validator
合法检测是在有表单或数据提交时常见的需求,随手撸了一个。由于考虑的业务场景比较复杂,代码也有点臃肿。拓展时,只需要修改上面的提示信息常量和新的test方法即可。也支持自己传入判断函数和message,针对比较复杂的校验情况。
1 | const TYPE_VALIDATE_MESSAGE = { |
实际应用中发现,verifyMap
方法用的比较多。使用样例如下;
1 | examine() { |
Linux清理大文件
df -h
查看存储情况du -sh * | grep G
查找当前目录下大于1G的大文件,挨个确认删除即可
当前页面窗口活动状态检查
利用visibilityChange
API,配合visibilityState
检查窗口状态。
1 | // subscribe to visibility change events |
IntersectionObserver
监测页面元素和视口的交错关系的DOM API,目前浏览器支持度不高。可以用来方便地实现懒加载和页面无限滚动。
图种
- Windows,
copy /b image.jpg+zip.rar output.jpg
,更改输出图片后缀为rar得到压缩包 - Linux,
cat image.jpg zip.rar > output.jpg
,同上
draggable with Vue
业务中有拖拽需求,在试用多个轮子后,最终选择了vue-slicksort
- Vue Draggable
- Vue Dragula
- Vue slicksort
GitHub名 | 流行度 | 依赖/原理 | 功能完善度 | 文档完善度 | 使用舒适度 | 备注 |
---|---|---|---|---|---|---|
vuedraggable | star数3859,很流行 | 依赖sortable.js,后者依赖HTML5的draggable API | 功能丰富强大,有很多别人踩过的坑 | 文档比较丰富 | 通过组件包裹形式使用 侵入性小 优 | 有兼容性问题,Chrome66.0.3359.181 Mac OSX 10.13.1下无法通过拖动换位 |
vue-dragula | star数100+,上次更新1年前 | 依赖dragula.js | 功能一般 | 不完善,几乎都是dragula的API | 通过Vue.use 的形式 + directives的方式引入,侵入式一般 |
使用效果不好,实现时没有拖动和移动的动效 |
vue-slicksort | star数100+,更新较活跃 | 0依赖,不基于HTML5 drag API,支持触摸屏,兼容性好 | 功能一般,支持平面拖动 | 较完善,有样例、API解释和FAQ | 略糟糕,需要使用mixin的形式,通常意味着额外的组件定义 | 展示效果优秀,能满足需求 |
综上,考虑到只有vue-slicksort能满足需求,故选择之。