
JS
文章平均质量分 54
TinaSlowDown
Code Your World
展开
-
开发插件并发布
项目开发中不同的系统经常遇到重复的自定义指令、组件等,直接复制代码比较冗杂,且如果需要改动,需要每个系统都改动一遍,非常不灵活。而将这些共通的部分封装成一个插件,使用时直接引用即可,大大减少冗余代码,优化代码结构。vue开发插件要暴露一个install方法,这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象。以下是Vue官方提供的不同插件的开发方式。MyPlugin.install = function (Vue, options) { // 1. 添加全局方法或 proper原创 2021-06-03 17:29:06 · 245 阅读 · 5 评论 -
数组排序,空值一直排最后
数组排序希望实现:不论升序还是降序,怎样实现空值始终排在最后;如下数组let arr = [null,"a", "b", null, "d",undefined,""]希望排列结果是:// 升序["a", "b", "d", "", null, null, undefined]// 降序["d", "b", "a", "", null, null, undefined]实现方法:onChangeOrder(list,order){ list.sort((a,b)=>原创 2021-06-02 11:29:36 · 2408 阅读 · 0 评论 -
由一道题看push方法的实现原理
最近同事分享了一道题let obj = { 2:3, 3:4, length:2, push:Array.prototype.push } obj.push(1) obj.push(2) console.log(obj)obj是一个类数组,其中引入了Array原型链上的push方法,关键就是要搞清楚Array.prototype.push的方法定义。经过查看资料,发现push的方法可以用js如下模拟:Array.prototype.push = function(.原创 2021-03-18 16:06:24 · 395 阅读 · 0 评论 -
浏览器下载文件的方法总结
背景在lims3项目中,遇到了导入导出的需求,导入较简单,导出分两种,一种是由当前已经拿到的数据生成excel文件,这部分前端借助插件也比较容易完成。但另一种导出,由后台生成文件流,前端接收并下载,我们在这里耗费了较多时间。我们的框架是vue,http请求使用的是axios,很自然地,我们按照后台提供的API进行请求,期望可以返回一个文件地址,或者开始下载文件,并且可以正常打开。然而我们拿到的返回结果很奇怪。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oTWQiNRL原创 2021-03-04 15:24:35 · 4879 阅读 · 3 评论 -
防抖解析
先简单介绍一下debounce,从最简单的一个场景入手,当用户不断点击页面,短时间内频繁的触发点击事件,只有在用户触发事件后的ns时间内,没有再触发事件,真正的监听函数才会执行,如果在这段时间内再次触发了事件,就需要重新计算这个ns时间。debounce最主要的作用是把多个触法事件的操作延迟到最后一次触法执行,在性能上做了一定的优化。这幅图算是很形象地展示了debounce的作用。正常,移...转载 2019-08-26 15:21:56 · 495 阅读 · 0 评论