Vue3使用lodash-es

Vue3使用lodash-es1 LodashLodash 是一个一致性 模块化 高性能的 JavaScript 实用工具库 Lodash 遵循 MIT 开源协议发布 并且支持最新的运行环境 Lodash 是一个非常流行的 JavaScript 实用工具库 涵盖了数组处

大家好,欢迎来到IT知识分享网。

1.Lodash

Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。Lodash 遵循 MIT 开源协议发布,并且支持最新的运行环境。

Lodash 是一个非常流行的 JavaScript 实用工具库,涵盖了数组处理、对象操作、函数式编程、字符串处理等。

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

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

2.lodash-es

lodash为了良好的浏览器兼容性, 它使用了旧版es5的模块语法; 而lodash-es则使用了es6的模块语法, 这让webpack之类的打包工具可以对其进行tree shake以删除未使用的代码来优化打包尺寸。

lodash-es 是 Lodash 库的 ECMAScript 模块版本,支持 ES6 模块的环境下提供的模块化版本。与传统的 lodash 库相比,lodash-es 允许你以模块化的方式导入和使用其中的功能,以便在现代 JavaScript 应用中更好地利用模块系统。

3.Vue3 使用 lodash-es

安装:

npm install lodash-es npm install @types/lodash-es

引入:

import * as _ from 'lodash-es'; //引入所有 import _ from "lodash-es"; //定义变量_ (_是官方推荐的,你可以自由定义),接受所有 import { assign } from "lodash-es"; // 按需引入,推荐使用这个

4.示例

4.1cloneDeep

该函数用于深拷贝一个对象或数组,创建一个完全独立的副本。拷贝后的对象与原始对象没有任何引用关系。

import { cloneDeep } from 'lodash-es'; const originalObj = { name: 'Alice', age: 25, hobbies: ['reading', 'music'] }; const clonedObj = cloneDeep(originalObj); clonedObj.name = 'Bob'; clonedObj.hobbies.push('sports'); console.log(originalObj); // { name: 'Alice', age: 25, hobbies: ['reading', 'music'] } console.log(clonedObj); // { name: 'Bob', age: 25, hobbies: ['reading', 'music', 'sports'] }

4.2 isEmpty

该函数用于检查一个值是否为空,包括空对象、空数组、空字符串和 null/undefined。

import { isEmpty } from 'lodash-es'; console.log(isEmpty({})); // true console.log(isEmpty([])); // true console.log(isEmpty('')); // true console.log(isEmpty(null)); // true console.log(isEmpty(undefined)); // true console.log(isEmpty({ name: 'Alice' })); // false

4.3 isEqual

该函数用于深度比较两个值是否相等,递归地比较对象和数组的内容。

import { isEqual } from 'lodash-es'; const obj1 = { name: 'Alice', age: 25 }; const obj2 = { name: 'Alice', age: 25 }; const arr1 = [1, 2, { prop: 'value' }]; const arr2 = [1, 2, { prop: 'value' }]; console.log(isEqual(obj1, obj2)); // true console.log(isEqual(arr1, arr2)); // true

4.4 debounce

该函数用于创建一个防抖函数,用于限制某个操作在指定时间内只执行一次。常用于输入框搜索、窗口调整等场景。

import { debounce } from 'lodash-es'; const handleInput = debounce(function() { // 在这里执行你的逻辑操作 }, 300); inputElement.addEventListener('input', handleInput);

4.5 throttle

throttle 函数与 debounce 函数类似,但它确保一个操作在指定时间间隔内至少执行一次。可用于限制触发频率较高的事件处理函数的执行次数。

import { throttle } from 'lodash-es'; const handleScroll = throttle(function() { // 在这里执行你的逻辑操作 }, 100); window.addEventListener('scroll', handleScroll);

4.6 uniqBy

根据数组的某个属性去重

import { uniqBy } from "lodash-es"; messageList = uniqBy(messageList, "msg_id");// 数组、你的对象内的字段

4.7 forEach

循环,可以循环对象、数组。

import { forEach } from "lodash-es"; // 循环对象 forEach({ 'a': 1, 'b': 2 }, function(value, key) { console.log(key); // a b }); // 循环数组 forEach(item.list, (listItem) => { });

4.8 includes

数组,对象,字符串中是否包含。

import { includes} from "lodash-es"; includes([1, 2, 3], 1);// => true includes([1, 2, 3], 1, 2);// => false 这里是说在数组的下标为2的值,是否==1 includes({ 'user': 'fred', 'age': 40 }, 'fred');// => true includes('pebbles', 'eb');// => true

4.9 filter

过滤,使用与 js 的 filter 过滤差不多,不过搜索条件支持的不仅仅是函数,还有对象、数组、字符串。

import { filter } from "lodash-es"; const arr = [ { 'user': 'barney', 'age': 36, 'active': true }, { 'user': 'fred', 'age': 40, 'active': false } ]; //跟js中的filter一样,支持函数 filter(arr, (o)=>!o.active ); // 通过对象过滤 filter(arr, { 'age': 36});// 结果是:{ 'user': 'barney', 'age': 36, 'active': true } // 根据数组过滤 active===false filter(arr, ['active', false]);//结果是:{ 'user': 'fred', 'age': 40, 'active': false } // 根据字符串过滤 filter(arr, 'active');// =>结果是: { 'user': 'barney', 'age': 36, 'active': true }

4.10 find

查找,可以针对数组、对象进行查找,返回指定数据 || undefined。

import { find } from "lodash-es"; // 对象中查找 find(obj, (item) => item.value === 111) // 数组中查找,跟js一样的 find(arr, (item) => item.value === 111)

5.Lodash 中文文档

https://www.lodashjs.com/

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/97387.html

(0)
上一篇 2024-10-28 15:26
下一篇 2024-01-12 17:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信