我为什么讨厌lodash
在做项目开发,及CodeReview时,我一直推荐Team降低对于lodash的依赖,多用原生写法,发现有人用,我就会关注下,并且反复去问为什么要用lodash。这里我就解释下为何这么讨厌它。
- lodash提供了很多的工具函数,有你知道的和你不知道的,过渡使用也就造成了过渡依赖,你可能最终的结果是
了解lodash,而不了解原生JS,防止因为大量使用lodash,而废弃了对于原生JS的学习
- 依赖lodash,现实来说
构建包的体积也会随之增大
,当然在带宽,网速很快的今天,似乎这个体积,我们不用过度care - 在原生和Lodash提供的方法都可以完成某个功能之时,用lodash可能意味着
性能更差
。 - lodash的方法很多考虑的情况非常全,所以某种程度
容错性也就强
,但要知道不报错有时比报错更危险。比如find,get,不报错,但一定对吗? - lodash的某些方法比如get方法,实际上使得
类型信息丢失
,同时,路径访问参,丧失了静态分析能力,比如重构,这里就会不易发现。 - lodash的某些方法,如果不熟悉可能会出错,比如isEmpty,要知道
_.isEmpty(true)
结果是true
对待lodash的使用态度
- 完成特定功能,优先使用JS原生写法,当然考虑到目标浏览器兼容性
- lodash的导入,采用ES模块按需导入,一定程度降低构建打包体积
- 推荐一个仓库-You-Dont-Need-Lodash-Underscore,透过这个仓库,我想也可以了解大牛们是如何看待lodash的,同时可以了解到如何用原生实现等价功能
- 不是说不让用,但反感和排斥,不假思索,就是用lodash解决一个功能的,因为我认为这些人,在这样做的时候,不去思考原生是否能够做到,不去考虑性能,用一句感性的话就是毫无负罪感。
- 对于那些lodash的无脑粉,也许有一天,开发环境中没有了lodash依赖,你们又怎么办呢。