首页 > 自考资讯 > 自考知识

前端会被淘汰吗,前端 2020

头条共创 2024-06-27

大家好。作为一名“前端专家”,我将带您关注前端前沿,深入研究前端底层技术。也欢迎关注、点赞、总结、转发!

1050d0678dd4430e98093fe697ad7a53~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082887&x-signature=qKIYro6zVASiMT6G172FuLufsZQ%3D 先进前端演进

前言

Lodash是一个JavaScript库,它使用函数式编程范式,为常见的前端编码提供了一系列实用的函数。 Lodash 帮助开发人员编写更清晰、更易于维护的JavaScript 代码,包括简化字符串、数字、数组、函数和对象编程的工具。

按照约定,Lodash 模块映射到下划线字符。例如:

const _=require('lodash'); const _=require('lodash/core');

1. lodash的使用现状?

NPMGithub累计数据

f874f57c7d9d4e08944700925eafa0c3~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082887&x-signature=ojbOX9KbnDj8J6%2B6YBFRUuCNlNQ%3D 根据NPM 的最新统计,lodash 的每周下载量达到了惊人的40,660,822 次。 Github上的star数已达55.6k,fork数已达6.8k,项目浏览量已达数百万。这意味着数千万开发者认可lodash。

lodash的热度数据

2156a1e1fc53474fb4ecc2de4f53514b~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082887&x-signature=4YoB8I3yALvmjPhIm96WzRYISP0%3D 从上图可以看出,近期lodash的搜索热度明显呈现下降趋势。有理由相信,未来几年会有更多的开发人员逐渐从Lodash 迁移。

数字代表图表指定区域内、指定时间内最高点的搜索热度。最流行的单词的得分为100,半流行的单词的得分为50,数据不足的单词的得分为0。

2.2023年还需要 lodash 吗?

转译器、编译器、构建工具等尝试以各种方式解决文件包大小问题。例如,webpack 使用tree shake 来识别死代码。 然而,lodash 比较特殊,使用loadash 的项目往往会导致打包代码更大。即使像.get/.cloneDeep 这样的简单方法也会导入大量代码。

8639f4d68b814d0b825fa4a1c372d918~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720082887&x-signature=yqJeEplkf%2F1mzvBZBm%2FeYXVusns%3D lodash 打包依赖性非常大

lodash 集成了100 多种工具方法。随着ES6、Babel等编译工具的出现,很多方法可能不再需要。 随着时间的推移,随着旧浏览器的用户迁移到新版本,lodash 可能会结束。

3.解决 lodash 代码爆炸问题

3.1 通过 lodash/* 或 lodash.* 导入需要的函数

const _=require('lodash'); //基于lodash的通用库const merge=require('lodash.merge');//导入自己需要的具体工具const get=require( ' lodash/get'); //从lodash基础库导入特定工具

3.2 使用ES6的原生方法替换lodash

数组。

let oneStooge=['Moe'];let TwoStooges=['Larry', 'Curly'];//两者都创建['Moe', 'Larry', 'Curly'] let ThreeStoogesLodash=_.concat( oneStooge, TwoStooges) ;let ThreeStoogesVanilla=[.oneStooge,twoStooges]; //使用剩余而不是lodash 数组进行连接。

let sonicCharacters=[ 'Sonic', 'Tails', 'Knuckles', ['Amy Rose', 'Shadow', 'Dr. Eggman']];//都返回://['Sonic', 'Tails', ' Knuckles', 'Amy Rose', 'Shadow', 'Dr. Eggman']let sonicCharactersFlatLodash=_.flatten(sonicCharacters);let sonicCharactersFlatVanilla=sonicCharacters.

let butmanLyrics=['na', 'na', 'na', 'na', 'na', 'Batman!'];//两者都返回['na', 'Batman'] let butmanLyricsUniqueLodash=_ .uniq( butmanLyrics);let butmanLyricsUniqueVanilla=[.new Set(batmanLyrics)];数组过滤:

let Country=[ '美国', '比利时', '日本', '中国', '韩国'];//两者都返回['日本', '中国', '韩国'] let asianCountriesLodash=_. filter(国家,国家=国家!='美国'国家!='比利时');let asianCountriesVanilla=国家.filter(国家=国家!='美国'国家!='比利时');数组有: 包括。

let frenchFlagColors=['Blue', 'White', 'Red'];//都返回falselet frenchFlagHasGreenLodash=_.include(frenchFlagColors, 'Green');let frenchFlagHasGreenVanilla=frenchFlagColors.include('Green');庞大的功能库,但随着ES6/Babel 的出现,其中大部分功能不再需要。如果你确实需要引入lodash,我希望你能够权衡一下成本和收益。

在ES6 之前,lodash 是提供丰富的跨浏览器功能的神,就像jQuery 时代一样。 到2023 年,可能不再需要跨浏览器功能。

lodash 安全事件也值得注意。开源安全平台Snyk的开发者Liran Tal在2019年发现了一个严重的原型污染漏洞,涉及几乎所有Lodash版本,对用户构成威胁。基地和军种安全构成重大威胁。

4.本文总结

https://thejs.dev/jmitchell/放开lodash-nqc的时间

https://nicozerpa.com/lodash-下划线-necessary-or-obsolete/

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢