Lodash

使用 Vue 开发 scrollbar 滚动条组件

Vue 应该说是很火的一款前端库了,和 React 一样的高热度,今天就来用它写一个轻量的滚动条组件; 知识储备:要开发滚动条组件,需要知道知识点是如何计算滚动条的大小和位置,还有一个问题是如何监听容器大小的改变,然后更新滚动条的位置; 先把样式贴出来: .disable-selection { -webkit-touch-callout: none...

深入 js 深拷贝对象

前言 对象是 JS 中基本类型之一,而且和原型链、数组等知识息息相关。不管是面试中,还是实际开发中我们都会碰见深拷贝对象的问题。 顾名思义,深拷贝就是完完整整的将一个对象从内存中拷贝一份出来。所以无论用什么办法,必然绕不开开辟一块新的内存空间。 通常有下面两种方法实现深拷贝: 迭代递归法 序列化反序列化法 我们会基于一个测试用例对常用的实现方法进行...

每日技术:npm模块安装机制

内容来自:https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/22 npm模块安装机制 发出npm install命令 查询node_modules目录之中是否已经存在指定模块 若存在,不再重新安装   若不存在, npm 向register查询模块压缩包的网址 下...

lodash 移除假值数组 compact

创建一个移除了所有假值的数组。例如:false、null、 0、""、undefined, 以及NaN 都是 “假值”. <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <...

lodash 展平数组 flatten flattenDeep

_.flatten(array) 向上一级展平数组嵌套 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="w...

webpack之代码分离

https://robertknight.github.io/posts/webpack-dll-plugins/ webpack一般会把一个文件里import/require的文件都会打包在一起,最近就在做这方面的工作,文件全部打包在一起了 对服务器的请求确实减少了,可是对于jquery和jquery的插件如果在每个文件重复打包,文件大了加载会很慢,而且...

lodash 数组元素查找 findIndex

_.findIndex(array, [predicate=_.identity]) 这个方法类似 _.find。除了它返回最先通过 predicate 判断为真值的元素的 index ,而不是元素本身。 <!DOCTYPE html> <html lang="zh"> <head>...

慎用lodash的cloneDeep函数

lodash的cloneDeep函数能够很方便的拷贝对象,但是一旦拷贝一些很复杂的对象就有可能报错。比如用cloneDeep克隆一个vue实例,就有可能包key.charAt is not a Function的错。(正确的拷贝方法是Vue.extend())。一般来说复杂的对象都会内置拷贝方法,使用内置的方法拷贝会比lodash的cloneDeep要安全...

Lodash常用函数(二)

数组/对象方法 1、remove(元素筛选,分到两个数组) 2、sortedUniq (去重,排序) 3、takeRightWhile ( 从array数组的最后一个元素开始提取元素,直到predicate返回假值 ) 4、uniqBy (去重,排序) 5、groupBy(分组) const users =[ { id: 'a', ag...

lodash按需引入

lodash提供了很多可用的方法供我们使用,绝对是一个很好用且用起来得心应手的工具库。但是同时,lodash的体积也不小,我们项目中使用的大概522K,可能只是使用了几个方法,但是却把整个lodash库引入了。为了吃几条鱼,就承包了整个鱼塘,代价有点大呀! 对于这个问题,有几种方案可供选择。 一.引入单个函数  lodash整个安装完之后,引用方式: lo...