首页IT科技lodash函数库(lodash-es 工具库)

lodash函数库(lodash-es 工具库)

时间2025-05-06 00:21:24分类IT科技浏览3344
导读:数字化管理平台...

数字化管理平台

Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus

Vue权限系统案例

个人博客地址

Lodash中文文档

Lodash 是一个一致性            、模块化                、高性能的 JavaScript 实用工具库           ,算是从 Underscore 分离出来的超集            。

Lodash 通过降低 array     、number            、objects                 、string 等等的使用难度从而让 JavaScript 变得更简单                。Lodash 的模块化方法 非常适用于:

遍历 array     、object 和 string 对值进行操作和检测 创建符合功能的函数

lodash 为了良好的浏览器兼容性                 ,它使用了旧版 es5 的模块语法;而lodash-es则使用了 es6 的模块语法     ,这让 webpack 之类的打包工具可以对其进行tree shake (摇树优化)以删除未使用的代码来优化打包体积     。所以在使用lodash库时      ,推荐通过lodash-es来进行导入操作            。

注:tree-shaking(摇树优化)的作用:移除上下文中未引用的代码(dead code)                 。

安装 lodash-es

npm i lodash-es

引入 lodash-es 中的函数

import { shuffle, cloneDeep, throttle, debounce } from lodash-es

1.1 浅拷贝 clone

_.clone(value) 创建一个 value 的浅拷贝     。返回拷贝后的值      。

var objects = [{ a: 1 }, { b: 2 }]; var shallow = _.clone(objects); console.log(shallow[0] === objects[0]); // true

1.2 深拷贝 cloneDeep

_.cloneDeep(value) 类似 _.clone 但是它会递归拷贝 value                 。返回拷贝后的值           。

var objects = [{ a: 1 }, { b: 2 }]; var deep = _.cloneDeep(objects); console.log(deep[0] === objects[0]); // false

1.3 防抖 debounce

_.debounce(func, [wait=0], [options=]) 创建一个 debounced(防抖动)函数                 ,该函数会从上一次被调用后           ,延迟 wait 毫秒后调用 func 方法      。 返回新的 debounced(防抖动)函数                 。

参数

func (Function): 要防抖动的函数           。 [wait=0] (number): 需要延迟的毫秒数。 [options=] (Object): 选项对象                 。 [options.leading=false] (boolean): 指定在延迟开始前调用                。 [options.maxWait] (number): 设置 func 允许被延迟的最大值。 [options.trailing=true] (boolean): 指定在延迟结束后调用            。 // 避免窗口在变动时出现昂贵的计算开销                。 jQuery(window).on(resize, _.debounce(calculateLayout, 150)); // 当点击时 `sendMail` 随后就被调用     。 jQuery(element).on(click, _.debounce(sendMail, 300, { leading: true, trailing: false })); // 确保 `batchLog` 调用1次之后      ,1秒内会被触发            。 var debounced = _.debounce(batchLog, 250, { maxWait: 1000 }); var source = new EventSource(/stream); jQuery(source).on(message, debounced); // 取消一个 trailing 的防抖动调用 jQuery(window).on(popstate, debounced.cancel);

1.4 节流 throttle

_.throttle(func, [wait=0], [options=]) 创建一个节流函数                 ,在 wait 秒内最多执行 func 一次的函数                 。 返回节流的函数     。

参数:

func (Function): 要节流的函数      。 [wait=0] (number): 需要节流的毫秒                 。 [options=] (Object): 选项对象           。 [options.leading=true] (boolean): 指定调用在节流开始前      。 [options.trailing=true] (boolean): 指定调用在节流结束后                 。 // 避免在滚动时过分的更新定位 jQuery(window).on(scroll, _.throttle(updatePosition, 100)); // 点击后就调用 `renewToken`           ,但5分钟内超过1次           。 var throttled = _.throttle(renewToken, 300000, { trailing: false }); jQuery(element).on(click, throttled); // 取消一个 trailing 的节流调用。 jQuery(window).on(popstate, throttled.cancel);

1.5 打乱值 shuffle

_.shuffle(collection) 创建一个被打乱值的集合                 。返回打乱的新数组                。

参数:collection (Array|Object): 要打乱的集合

_.shuffle([1, 2, 3, 4]); // => [4, 1, 3, 2]

Vue 动画案例

代码实现:

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
wordpress插件seo(使用WordPress插件优化您的网站SEO)