Vue3+Lodash:2023年了,我依然在使用Lodash

news2024/9/22 7:40:16

目录

前言:

为什么选择lodash?

看看lodash的地位

如何使用lodash?

1.安装lodash

2.引入lodash

我们到底还需不需要lodash?

再举一些例子


前言:

        前两天,在水群的时候,发现居然有人不知lodash,这可把我吓了一跳,lodash难道都不被前端人所知了吗?Lodash官网

为什么选择lodash?

借用lodash的话:

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

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

可能你还是觉得lodash对你没啥吸引力,这么说吧,lodash最为前端社区里面一个最出名的工具库,提供了很多很多高效率,高兼容性的工具函数;比如将一个数组按照固定数量进行切割,用一个节流防抖的函数,深度克隆等等诸多常用的函数!

看看lodash的地位

如何评价一个项目厉害不厉害,点赞数,下载量是最直观的!

 

如何使用lodash?

1.安装lodash

npm i --save lodash

2.引入lodash

     全局引用(当然不推荐使用):

     main.js

 index.vue; 随便用个lodash的封装方法,这里使用random,随机生成0-10之间的数字

<script setup>
  import {getCurrentInstance} from "vue"
  const {proxy} = getCurrentInstance()
  console.log(proxy.lodash.random(0,10))
</script>

2. 按需引入

按需引入其实有挺多种方式的,我会一一举例说明,依然用lodash的random举例,main.js里面就不要再引入lodash之类的

1.10-100的随机数

<script setup>
  import _random from "lodash/random"
  console.log(_random(10,100))
</script>

2.100-1000的随机数

<script setup>
  import {random} from "lodash"
  console.log(random(100,1000))
</script>

3.1000-10000的随机数

<script setup>
  import {random as _random} from "lodash"
  console.log(_random(1000,10000))
</script>

 具体哪个好用的话,看具体的情况和个人喜好,我说说我的,我目前主要是使用的是方案1,因为 _xxx 函数能让我在回看代码的时候,就知道此函数就是lodash内的函数,更易解读。

lodash还有更多简易有用的函数,都是开发者多年的开发中提炼出来的,经过了千锤百炼,非常可靠!

我们到底还需不需要lodash?

我的答案是需要,虽然在日常的工作中,我们会经常使用js的原生的语法,觉得lodash封装的好像用起来还更麻烦了,但是我还是依然推荐把lodash作为额外的工具库进行使用,在写项目是形成一种原生的js语法为主,lodash为辅的模式!比如当涉及到使用深拷贝,节流防抖的时候,我们直接拿lodash中的使用即可,非常的方便,而且也不会导致代码的冗余,再也不用从别的地方复制相关代码。而且我们还可以看看lodash的源码,学习学习前辈的代码,何乐而不为?

那既然lodash这么牛,为何感觉在当下却显得没那么流行了呢?

一来,近些年浏览器和web的技术发展的比较迅速,ie都退场了,浏览器对es语法的支持度更好了,兼容性这个词提及的似乎越来越少了。二来,编译工具可以把es6+的代码编译为浏览器支持的es5,高阶语法的兼容性也得到了更好的解决。

但作为顶级的js工具库,当然有其可取之处。至于用或不用,仁者见仁智者见智!

再举一些例子

filter

  import _filter from "lodash/filter"
  const list = [{name:'aa',age:10},{name:'bb',age:18},{name:'aa',age:30}]
  console.log(_filter(list,item=>item.age>18)) //lodash
  console.log(list.filter(item=>item.age>18)) //原生

 sum

  import _sum from "lodash/sum"
  const list = [1,2,3]
  console.log(_sum(list))
  
  function getSum(total, num) {
    return total + num;
  }
  console.log(list.reduce(getSum))

 更多的好东西,还是自己去发掘吧ovo!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenCV-PyQT项目实战(6)项目案例02:滚动条应用

欢迎关注『OpenCV-PyQT项目实战 Youcans』系列&#xff0c;持续更新中 OpenCV-PyQT项目实战&#xff08;1&#xff09;安装与环境配置 OpenCV-PyQT项目实战&#xff08;2&#xff09;QtDesigner 和 PyUIC 快速入门 OpenCV-PyQT项目实战&#xff08;3&#xff09;信号与槽机制 …

基于感知动作循环的层次推理用于视觉问答

title&#xff1a;Hierarchical Reasoning Based on Perception Action Cycle for Visual Question Answering 基于感知动作循环的层次推理用于视觉问答 文章目录title&#xff1a;[Hierarchical Reasoning Based on Perception Action Cycle for Visual Question Answering](…

机器学习技术:多任务学习综述!

Datawhale干货 作者&#xff1a;陈敬&#xff0c;中国移动云能力中心前言本文对多任务学习(multi-task learning, MTL)领域近期的综述文章进行整理&#xff0c;从模型结构和训练过程两个层面回顾了其发展变化&#xff0c;旨在提供一份 MTL 入门指南&#xff0c;帮助大家快速了解…

MySQL的锁机制详解

目录 一.概述 分类 锁的特性 二.MyISAM表锁 如何加表锁 读锁演示 写锁演示 三.InnoDB行锁 行锁特点 行锁模式 一.概述 锁是计算机协调多个进程或线程并发访问某一资源的机制&#xff08;避免争抢&#xff09;。 在数据库中&#xff0c;除传统的计算资源&#xff08;如…

常见的并发模型

介绍 常见解决并发的策略一般有两种&#xff1a;共享数据和消息传递 基于消息传递的实现有 CSP模型&#xff0c;典型的有Go语言中基于Channel的通讯Actor模型&#xff0c;典型的有Akka中的Actor模型 CSP模型和Actor模型的简单理解&#xff1a; Dont communicate by sharing…

如何使用MQTTX可视化工具

@ [TOC] 使用背景 最近在调试MQTT相关的程序,调试程序时使用的是MQTTX这个工具,它可以创建服务器连接,并且在连接后发布和订阅主题。在调试过程中总结了一些使用方法和技巧,在这里分享给大家。 MQTTX是EMQX公司推出的可视化MQTT调试工具,大家可以到官网下载使用,同时参…

技术实践干货:从零开始创建Node.js应用

作为一个程序员&#xff0c;我们常常会有很多想法和创意&#xff0c;然后用技术实现出来&#xff0c;这是一个很有成就感的事情。 在实践过程中&#xff0c;会发现很多想法都不能很好地落地&#xff0c;可能是技术、可能是团队氛围等等&#xff0c;于是就开始想着能够不能有一个…

类内默认函数

目录 前言&#xff1a; 1. 构造函数 1.1 概念 1.2 特性 1&#xff09; 2&#xff09; 2. 析构函数 2.1 概念 2.2 特性 3. 拷贝构造 3.1 概念 3.2 特征 4. 赋值运算符重载 4.1 运算符重载 4.2 赋值运算符重载 5.3 前置和后置的重载 前言&#xff1a; 问&#xf…

AI智能机器人,在这里也可以体验~

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”现在是&#xff1a;2023年2月17日00:14:42前言最近AI智能chatgpt特别的火&#xff0c;相信好多人都已经体验过了&#xff0c;之前我的群里也接入过&#xff0c;奈何总是收到警告和限制…

泛微发布内外协同的客服管理系统-睦客邻

客户服务是企业业务环节中的关键一环&#xff0c;也是确保客户最终满意度的关键一环。好的客户服务是一个组织能持续经营的有力保证。 如何让客服成为客户的好邻里&#xff0c;让客户真实地感受到全方位的服务&#xff0c;从而让组织的服务产生力量和价值。企业对客服有着系统…

LV8731V-TLM-H 带保护步进电机驱动器特性简述

LV8731V-TLM-H是一个2−通道H−桥驱动器IC&#xff0c;它可以切换步进电机驱动器和两个有刷电机驱动器&#xff0c;前者支持1/16−步进分辨率的微步进驱动&#xff0c;后者支持电机的前进、后退、制动和待机。它非常适合驱动办公室设备和娱乐应用中使用的刷直流电机和步进电机。…

Web--Maven

1.maven管理项目的区别 2. 安装后&#xff0c;conf目录下的setting文件中&#xff0c;对本地仓库的配置 此处可替换成自定义的本地仓库地址&#xff0c;默认为c:/user/17860/.m2/repository(我的电脑上的&#xff09; 3.maven项目的标准目录结构 4.项目的生命周期 5.Maven概…

内网渗透(三十七)之横向移动篇-Pass the Hash 哈希传递攻击(PTH)横向移动

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

面试攻略,Java 基础面试 100 问(七)

String 是最基本的数据类型吗? 不是。Java 中的基本数据类型只有 8 个&#xff1a;byte、short、int、long、float、 double、char、boolean&#xff1b;除了基本类型&#xff08;primitive type&#xff09;和枚举类型&#xff08;enumeration type&#xff09;&#xff0c…

分享一个外贸客户案例

春节期间一个外贸人收到了客户的回复&#xff0c;但因为自己的处理方式造成了一个又一个问题&#xff0c;我们可以从中学到一些技巧和知识。“上次意大利的客人询价后&#xff0c;一直没回复&#xff08;中间有打过电话&#xff0c;对方说口语不行&#xff0c;我写过邮件跟进过…

数据结构与算法之二分查找分而治之思想

决定我们成为什么样人的&#xff0c;不是我们的能力&#xff0c;而是我们的选择。——《哈利波特与密室》二分查找是查找算法里面是很优秀的一个算法&#xff0c;特别是在有序的数组中&#xff0c;这种算法思想体现的淋漓尽致。一.题目描述及其要求请实现无重复数字的升序数组的…

论文阅读笔记《DEEP GRAPH MATCHING CONSENSUS》

核心思想 本文提出一种基于图神经网络的图匹配方法&#xff0c;首先利用节点相似度构建初始的匹配关系&#xff0c;然后利用局部的一致性对初始的匹配关系进行迭代优化&#xff0c;不断筛除误匹配点&#xff0c;得到最终的匹配结果。本文还提出几种措施来降低计算复杂度&#x…

SpringBoot学习总结2

1、配置文件 1.1、配置文件类型 properties yaml 优点&#xff1a;比起xml而言&#xff0c;语法更简洁&#xff0c;更轻量级。非常适合用来做以数据为中心的配置文件 基本语法 key: value&#xff1b;:后面要跟一个空格大小写敏感使用缩进表示层级关系缩进不允许使用tab&…

内存屏障1

内存屏障 引入 我们知道 volatile 能保证 JMM约束的 可见性和有序性。 关于有序性&#xff0c;到底该如何理解&#xff1f; 有序性的根本保证&#xff0c;就是 禁止指令重排序 重排序&#xff1a; 重排序是指 编译器和处理器 为了优化程序性能 而对指令序列进行重新排序…

万字讲解你写的代码是如何跑起来的?

今天我们来思考一个简单的问题&#xff0c;一个程序是如何在 Linux 上执行起来的&#xff1f; 我们就拿全宇宙最简单的 Hello World 程序来举例。 #include <stdio.h> int main() {printf("Hello, World!\n");return 0; } 我们在写完代码后&#xff0c;进行…