都听说过 lodash,但你会用吗?

这篇具有很好参考价值的文章主要介绍了都听说过 lodash,但你会用吗?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 引言

Lodash 是 JavaScript 社区最出名的一个工具库,提供了许多高效、高兼容性的工具函数。

不过,随着浏览器和 web 技术的发展,一些人开始反对在项目中使用 lodash。主要原因有:

  • ES6 之后拓展了 JavaScript 特性,许多功能不再需要额外工具库。
  • 现代浏览器对 ES 语法的支持性提升。
  • Babel 等编译工具能将 ES6 编译成 ES5,更优雅地解决了 ES6 语法的兼容性问题。
  • 为了几个工具函数而引入了整个 lodash,增加了项目的体积。

本文来探讨一下,我们该不该在项目中使用 lodash,以及如何正确使用 lodash。是的,这个看起来有点标题党的标题,有两层含义:

  • 你会在项目中使用 lodash 吗?
  • 你会正确地使用 lodash 吗?

1. 我们还需要 lodash 吗?

个人认为,应该优先使用 ES 原生语法,同时,在大部分项目中仍然推荐使用 lodash 作为拓展工具库。原因如下:

  • Lodash 不止 ES6,有更多 ES6 难以实现的功能,比如常见的深拷贝。
  • 提高开发效率、简化代码。lodash 中的函数,都是社区开发者从多年的实践中提炼出来的常用功能,并且经过广泛的考验和优化,使用库函数往往比自己实现有更好的性能和鲁棒性。
  • Lodash 支持多种模块化方案,配合 tree shaking 技术或者使用单独的函数模块,几乎不会导致冗余代码。

不管怎么样,lodash 目前仍然保持着 4 千多万的周下载了,就足以见得它的流行程度。

2. 还是不想用 lodash ?

即使你坚持不肯使用 lodash,我认为仍然有必要了解 lodash 提供了哪些功能,这些功能你会经常在开发中遇到。这个时候,你可以从 You Don’t Need Lodash Underscore 中查看如何使用原生语法实现。

3. Lodash 按需引入

最常见的引入 lodash 的方式是:

// 方式1:引入整个lodash对象
import _ from "lodash";

// 方式2:按名称引入特定的函数
import { cloneDeep } from "lodash"; 

这两种方式都会引入整个 lodash 库。Lodash 含有许多函数,项目里一般只会用到其中的小部分,为了避免引入不必要的代码,lodash 提供了多种支持按需加载的方式。

A)使用打包插件实现按需加载(推荐)

插件 babel-plugin-lodash 和 lodash-webpack-plugin 能够在打包时去掉不必要的 lodash 代码,减小产物体积。

B)指用具体的功能模块

// 只引入 array 模块的功能
import array from "lodash/array";

// 只引入 cloneDeep 函数
import cloneDeep from "lodash/cloneDeep"; 

这种方式只会引入引用路径对应的模块,无需使用插件,也不会有冗余代码。缺点是每个 import 语句只能引入一个函数,可能导致多个 import 语句。

C)使用单独的函数库

Lodash 为每个方法提供了文章来源地址https://www.toymoban.com/news/detail-604313.html

到了这里,关于都听说过 lodash,但你会用吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium执行js代码的两个方法你都会用吗?

    在使用selenium做web自动化的时候,很多小伙伴反馈有些页面上动作我们无法通过selenium封装的方法直接去做,比如说修改元素的属性,影子节点的操作等等。需要使用原生的js代码去实现,而selenium也给我提供了两个执行js代码的方法,一个是execute_script,另一个是execute_async_s

    2024年04月28日
    浏览(37)
  • Python中最常用的5种线程锁,你都会用吗

    对于日常开发者来讲很少会使用到本章节的内容,但是对框架作者等是必备知识,同时也是高频的面试常见问题。 线程安全是多线程或多进程编程中的一个概念,在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的

    2024年02月08日
    浏览(34)
  • 自动化测试学习(七)-正则表达式,你真的会用吗?

    目录 一、正则表达式在python中如何使用 二、用正则表达式匹配更多模式 三、常用字符分类的缩写代码 总结 所谓正则表达式(regex),就是一种模式匹配,学会用正则匹配,就可以达到事半功倍的效果。 1.导入正则表达式模块 2.创建正则表达式对象,以电话号码为例 Tips:

    2023年04月09日
    浏览(44)
  • 只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(上)

    目录 前言 settimeout/setinterval requestAnimationFrame 基本用法 时间戳参数 帧数与时间戳计算 自动暂停 JS中的贝塞尔曲线 概念 公式 二次贝塞尔 三次贝塞尔 N次贝塞尔 贝塞尔曲线+动画 动画类 在动画中使用贝塞尔 总结 相关代码: 贝塞尔曲线相关网站: 参考文章: 上篇文章我们详

    2024年02月16日
    浏览(83)
  • 只会用插件可不行,这些前端动画技术同样值得收藏-JavaScript篇(下)

    目录 前言 介绍 基本使用 关键帧 KeyframeEffect的三种类的声明 keyframes options 动画对象 全局Animation类 标签中的animate函数 总结 相关代码: 接着上文往下介绍,上篇文章我们对JS原生动画和贝塞尔曲线有了一个详细的认识,基于定时器或动画帧,我们可以实现元素的动画缓动,本

    2024年02月12日
    浏览(44)
  • Apifox WebSocket 调试功能你会用了吗?

    在 2.2.32 及更高版本的 Apifox 中,支持对  WebSocket API  进行调试。 WebSocket  是一种在单个 TCP 连接上进行全双工通信的 API 技术。相比于传统的 HTTP 请求,WebSocket 具有更低的延迟和更高的效率。它适用于需要长时间保持连接并实时传输数据的场景,例如在线游戏、实时聊天等

    2024年02月08日
    浏览(48)
  • 想进大厂, Jira 管理平台你会用么?

    作为一名测试工程师,管理bug的生命周期是每天必备的日常工作;所以缺陷管理流程,以及缺陷如何记录并完成跟踪,都是测试必须要掌握的技能,然而管理缺陷需要借助缺陷管理平台。 目前比较主流和常见的一些缺陷管理平台有如下几款: 本文章给大家重点讲解 Jira这个平

    2024年02月07日
    浏览(36)
  • 你会用IDEA的Code With Me功能吗?用完发现真香

    \\\" Code With Me \\\"是JetBrains在其IDEA集成开发环境中引入的一项新功能,该功能允许开发人员在远程环境中协作编写代码。 首先,您需要在JetBrains账户中注册,以便能够使用该功能。在IDEA中选择 “Code With Me” 选项,然后登录您的JetBrains账户。如果您没有JetBrains账户,可以免费创建

    2024年02月15日
    浏览(39)
  • 如果让你实现实时消息推送你会用什么技术?轮询、websocket还是sse

    在日常的开发中,我们经常能碰见服务端需要主动推送给客户端数据的业务场景,比如_数据大屏的实时数据_,比如_消息中心的未读消息_,比如_聊天功能_等等。 本文主要介绍SSE的使用场景和如何使用SSE。 学习就完事了 我们常规实现这些需求的方案有以下三种 轮询 websock

    2024年03月19日
    浏览(47)
  • 几种查询局域网内在线弱电设备IP地址的方法,总有一款你会用的到

    方法一:通过电脑cmd命令查询局域网内设备IP 在电脑开始菜单[运行],输入cmd回车,在弹出的命令提示窗口输入ipconfig/all回车,能够查看本机的IP、网关、mac地址信息。 然后在命令提示窗口输入arp -a,进行回车,等待返回结果。 从返回结果可以查询看本地局域网中的所有与本

    2023年04月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包