Lodash 真的死了吗?Lodash 5 在哪里?

与一些传言相反,Lodash依然活跃,并正在迈向Lodash 5的发布!

Lodash 是那些为 JavaScript 提供便利功能的实用程序库之一,它使编程变得更加轻松。许多开发者使用它来简化对象和数组的处理。

它也是一个像 Moment.js那样被捕获得措手不及的库。由于没有模块化,它从一些项目中被丢弃,因为当你加载5MB的分析工具时,每多1kB的负担都太大了。

我偶尔使用 Lodash,因为它很有用,并且我发现它很有帮助。但惊讶地发现了Daniel Roe的这条推文:

f321b6d48fa1ece1232fefb12778be6b.png

必须读两次,因为仅仅浏览这条推文会让你相信 Lodash 已经死亡。

实际上,Daniel 写道在他发那条推文时没有新的问题反馈。

但你可以从推文中感受到对 Lodash 的一些反感,因为它的措辞暗示着 Lodash 已经死亡。

在随后的推文中,他澄清说没有问题反馈可能是为了准备发布Lodash 5:

43d21aad1c720032c9ab1dcad73124e9.png

为什么我们会看到关于这个流行库的如此模糊的推文?

我发现的是,原计划在2021年发布 Lodash 5。

然而,现在是2023年,Lodash 5 的发布已经延迟了两年。该版本的更改清单非常重要,主要侧重于减小大小和模块化,这些问题使得Lodash在一些团队中逐渐沉没。

所以,这个路线图非常明确,当Lodash 5发布时,它将能够再次展现它的真正用途。

我不知道为什么它会延迟。但有时这种情况确实会发生。没什么大不了的。没有理由不喜欢它。

然后,作者偶然发现了这个关于省略函数的主题。Omit 函数是删除对象不必要属性的一种方法。它的用处在于可以一次删除多个属性,还可以删除深层属性,例如 car.tires.size

为了准备这些对意外数据过敏的API端点的数据,这非常方便。

但是,根据路线图,Lodash 5 将取消这一功能。看起来对于一些人来说,这真的很重要。但是,五年前,这成为了设计决策的一部分,开发者被告知他们对此没有发言权:

3f1e2c61486f993b0c652856dd6cf26e.png

并说明原因:

它必须引入所有属性(继承的和自己的可枚举字符串键属性和符号),然后排除少量属性。另一方面,_.pick_.pickBy 是显式的。只需选择你想要的内容,无需大费周章。

我不知道这是不是反感的来源,但肯定有一些开发者不喜欢这个实用程序库决定他们应该如何编码。

罗伯特-登普西(Robert Dempsey)撰写了一篇很棒的文章,对 omit 功能的所有可能替代方案进行了分析,得出如下结论:

如果你需要省略扁平路径, 建议安装Lodash 4+单独用于省略功能,同时使用Lodash 5+进行其他操作。

Robert 所做的研究得出的结论确实很有根据。这让我们得出的结论是使用pick,或pickBy,或者在Lodash 5发布时安装两个版本的Lodash。

尽管我们知道选择属性与删除它们不同。因为对于大型对象,选择是逆生产的。

总之,一些开发者,一些忠实的Lodash开发者,将不得不安装两个版本,因为一个设计决策。

我还了解到,omit 功能的运行速度很慢,这可能是删除该功能的原因。

Robert 所做的研究显示了一些有前途的替代方案。但也明确表示,这个功能对于人们来说是有用的。所以,即使它不是超级快,对于人们来说也足够了。

当我处理一个数据时,我不太关心它多用了1毫秒,因为我知道调用API的时间都要花费500毫秒。💀

另一方面,在某些情况下可能会太慢,但这就是性能测试的任务。

不过,作者也理解当今方正公司规则的设计决定。在这种情况下,因为有人可能会错误地使用一个函数而放弃一个库,或者干脆放弃这个函数,都比解释如何正确使用它要容易得多。

作者也理解这个决定可能是基于需要优化库在所有情况下的运行速度和推广最佳实践,同时与实用性保持良好的平衡。

说了这么多,这只说明在受欢迎的库周围做决策是多么的棘手。不能让每个人都满意。

作者个人会保留这个功能,并尽量提高其速度,同时在文档中添加一些说明。

无论如何,事实上,Lodash团队实际上使用了“Issue bankruptcy”标签来描述已关闭的问题。

41a1ab22e4457e1970754bd8f4c34bc2.png

Lodash仍然活跃,有一天我们会看到Lodash 5,这是许多开发者期待的东西。

欢迎长按图片加刷碗智为好友,定时分享 Vue React Ts 等。

7457ed6e384f1eba9e244e2080af63e7.png

最后:

vue2与vue3技巧合集

VueUse源码解读

b14449d24b233b96d50900ca8fe018a1.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/178387.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

038-第三代软件开发-简易视频播放器-自定义Slider (二)

第三代软件开发-简易视频播放器-自定义Slider (二) 文章目录 第三代软件开发-简易视频播放器-自定义Slider (二)项目介绍简易视频播放器自定义Slider (二)横向纵向 关键字: Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&…

【UE】从UI中拖拽生成物体

目录 效果 步骤 一、准备工作 二、创建UI 三、创建Actor 四、拖拽生成Actor的逻辑 效果 步骤 一、准备工作 1. 首先新建一个第三人称模板工程 2. 新建一个游戏模式基础,这里命名为“BP_UIGameMode” 在世界场景设置中设置游戏模式覆盖为“BP_UIGameMode”…

Vue中切换tab路由,提示this.$confirm确定和取消执行不同的逻辑

beforeRouteLeave (to, from, next) { // 离开页面 if (this.editFlag true) { this.$confirm(页面尚未保存,确认离开吗?, 提示, { distinguishCancelAndClose: true, // 区分取消和关闭 confirmButtonText: 确定, cancelButtonText: 取消, type: info }).then(()…

RT-Thread 9. VS2012下仿真RT-Thread 和LVGL

1. 在ENV中添加组件 2. 下载组件 3. 生成代码 4. 打开代码 双击project.vcxproj 编译 5. 运行

Linux | 如何保持 SSH 会话处于活动状态

在远程服务器管理和安全数据传输中,SSH(Secure Shell)是不可或缺的工具。然而,它的便利性和安全性有时会因常见的问题而受到损害:冻结 SSH 会话。 此外,session 的突然中断可能会导致工作丢失、项目延迟和无…

深度学习_1 介绍;安装环境

深度学习 学习自李沐老师的课程。笔记主要以总结老师所讲解的内容以及我个人的想法为主,侵删! 课程链接:课程安排 - 动手学深度学习课程 (d2l.ai) 介绍 AI地图: 我们以前写的非 AI 类程序基本都是人自己去想会遇到什么样的问题…

基于transformer的解码decode目标检测框架(修改DETR源码)

提示:transformer结构的目标检测解码器,包含loss计算,附有源码 文章目录 前言一、main函数代码解读1、整体结构认识2、main函数代码解读3、源码链接二、decode模块代码解读1、decoded的TransformerDec模块代码解读2、decoded的TransformerDecoder模块代码解读3、decoded的De…

Ubuntu 20.04设置虚拟内存 (交换内存swap)解决内存不足

数据库服务器程序在运行起来之后,系统内存不足。 在系统监控中发现,当数据库服务程序启动后,占用了大量内存空间,导致系统的剩余的内存往往只有几十MB。 在ubuntu系统中,swap空间就是虚拟内存,所以考虑在磁…

【kubernetes】k8s对象☞pod

文章目录 1、什么是pod2、pod的使用2.1 用于管理pod的工作负载资源2.2 pod怎样管理多个容器2.3 pod 操作系统2.4 pod和控制器2.5 pod模板 3、pod的更新与替换3.1 资源共享和通信3.2 pod中的存储3.3 pod联网 4、容器的特权模式4.1 linux 特权容器4.2 windows特权容器 5、静态pod…

ES 8.x新特性一览(完整版)

一、看点 在 2022 年 2 月 11 日,Elasticsearch(ES)正式发布了 8.0 版本,而截止到 2023 年 10 月,历经一年半时间,ES官方已经连续发布了多个版本,最新版本为 8.10.4。这一系列的更新引入了众多引…

极智开发 | H100服务器的庐山真面目

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 H100服务器的庐山真面目。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq H100 是英伟达最强显卡,当然其实也…

【GitLab、GitLab Runner、Docker】GitLab CI/CD 应用

安装Gitlab开源版 官方文档-安装Gitlab 使用Docker安装 sudo docker run --detach \--hostname gitlab.example.com \--env GITLAB_OMNIBUS_CONFIG"external_url http://${ip}:9999/; gitlab_rails[gitlab_shell_ssh_port] 8822;" \--publish 443:443 --publish 99…

基于深度学习的人脸专注度检测计算系统 - opencv python cnn 计算机竞赛

文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的人脸专注度…

自动驾驶算法(一):Dijkstra算法讲解与代码实现

目录 0 本节关键词:栅格地图、算法、路径规划 1 Dijkstra算法详解 2 Dijkstra代码详解 0 本节关键词:栅格地图、算法、路径规划 1 Dijkstra算法详解 用于图中寻找最短路径。节点是地点,边是权重。 从起点开始逐步扩展,每一步为一…

Python---字符串切片-----序列名称[开始位置下标 : 结束位置下标 : 步长]

字符串切片:是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。 本文以字符串为例。 基本语法: 顾头不顾尾: ----------类似range() 范围,顾头不顾尾 相关链接Python----ran…

k8s调度约束

List-Watch Kubernetes 是通过 List-Watch的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。 List-Watch机制 工作机制:用户通过 kubectl请求给 APIServer 来建立一个 Pod。APIServer会将Pod相关元信息存入 etcd 中…

注册中心ZK、nameServer、eureka、Nacos介绍与对比

前言 注册中心的由来 微服务架构是存在着很多跨服务调用,每个服务都存在着多个节点,如果有多个提供者和消费者,当提供者增加/减少或者消费者增加/减少,双方都需要感知发现。所以诞生了注册中心这个中间件。 市面上有很多注册中心,如 Zookeeper、NameServer、Eureka、Na…

【Tomcat Servlet】如何在idea上部署一个maven项目?

目录 1.创建项目 2.引入依赖 3.创建目录 4.编写代码 5.打包程序 6.部署项目 7.验证程序 什么是Tomcat和Servlet? 以idea2019为例: 1.创建项目 1.1 首先创建maven项目 1.2 项目名称 2.引入依赖 2.1 网址输入mvnrepository.com进入maven中央仓库->地址…

2.4G合封芯片 XL2422,集成M0核MCU,高性能 低功耗

XL2422芯片是一款高性能低功耗的SOC集成无线收发芯片,集成M0核MCU,工作在2.400~2.483GHz世界通用ISM频段。该芯片集成了射频接收器、射频发射器、频率综合器、GFSK调制器、GFSK解调器等功能模块,并且支持一对多线网和带ACK的通信模式。发射输…

【Windows-软件-OS】(01)Windows操作系统配置环境变量,快速上手

前言 "Windows"操作系统配置环境变量,快速上手; 实操 【实操一】 环境 Windows 11 专业版(22621.2428); 图片 (1) (2) (3) &#x…