当前位置: 首页 > news >正文

前端常用库之-JavaScript工具库lodash

文章目录

  • 前端常用库之-JavaScript工具库lodash
    • 一、什么是lodash
    • 二、安装
    • 三、lodash使用
      • Lodash 的 pick() 函数介绍和使用
        • react 实例demo:pick结合...展开运算符(spread operator)

前端常用库之-JavaScript工具库lodash

一、什么是lodash

官网: https://lodash.com/
github:https://github.com/lodash/lodash
Lodash 中文文档: https://www.lodashjs.com/

Lodash是一个著名的javascript原生库,不需要引入其他第三方依赖。是一个意在提高开发者效率,提高JS原生方法性能的JS库。简单的说就是,很多方法lodash已经帮你写好了,直接调用就行,不用自己费尽心思去写了,而且可以统一方法的一致性。Lodash使用了一个简单的 _ 符号,就像Jquery的 $ 一样,十分简洁。

Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。

在React项目中,我们通常会用到lodash的以下功能:

  1. 工具函数,如uniqBy、keyBy来处理数组或对象。
  2. 深度克隆对象,避免污染 React 中的状态对象。
  3. 模块化引入单个函数,优化打包大小。
    所以简单来说,lodash是一个非常强大而实用的JavaScript工具库,能够提高代码质量和开发效率。它在React项目中也被广泛使用。

二、安装

$ npm i -g npm
$ npm i --save lodash

三、lodash使用

Lodash 的 pick() 函数介绍和使用

中文文档:https://www.lodashjs.com/docs/lodash.pick

_.pick(object, [props])

参数
object (Object): 来源对象。
[props] (…(string|string[])): 要被忽略的属性。(注:单独指定或指定在数组中。)

返回

(Object): 返回新对象。

例子:

var object = { 'a': 1, 'b': '2', 'c': 3 };_.pick(object, ['a', 'c']);
// => { 'a': 1, 'c': 3 }
react 实例demo:pick结合…展开运算符(spread operator)

react 实例demo:

import { pick } from 'lodash';
import React from 'react';
import PropTypes from 'prop-types';
import MyIcon from 'components/MyIcon';
import classes from './NoDataTip.scss';// 这个NoDataTip组件是一个显示“无数据”提示的React组件
// 这是一个React函数式组件,接收tip和style作为props,渲染一个提示。
// NoDataTip组件可以复用来渲染各种“无数据”的状态,通过配置tip提示语以及MyIcon的type图标,可以实现不同的效果。
// 它通常会在列表加载完成时,但数据为为空时使用,提高了组件的复用性,也统一了界面风格。
const NoDataTip = props => (<div {...pick(props, ['style'])} className={classes.container} ><p><MyIcon type="info" /> {props.tip}</p></div>
);NoDataTip.propTypes = {tip: PropTypes.string
};NoDataTip.defaultProps = {tip: '暂无数据',style: {}
};export default NoDataTip;

pick方法的返回结果是一个什么样的对象,这里举个例子说明:

… 表示展开运算符(spread operator)
假设传入的props是:

const props = {name: 'John',age: 20,gender: 'male',style: {color: 'red'}  
}

当我们调用:

pick(props, ['style'])

pick会从props中选取style属性,返回一个新的对象:

{style: {color: 'red' }
}

可以看到,返回了一个只包含style属性的新对象。
然后通过展开运算符:
jsx

<div {...pick(props, ['style'])} >

就可以将这个对象展开,只插入style属性,相当于:

<div style={{color: 'red'}} >

总结:pick返回了一个截取了原对象属性子集的新对象,通过展开可以方便地将这个子集插入到JSX中。

http://www.lryc.cn/news/171302.html

相关文章:

  • Linux- execve()
  • 007 数据结构_堆——“C”
  • zabbix的原理与安装
  • ReactNative中升级IOS 17版本Crash解决
  • MongoDB详解
  • 【SpringCloud微服务全家桶学习笔记-服务注册zookeeper/consul】
  • 【滑动窗口】LCR 016. 无重复字符的最长子串
  • C++中将类成员函数作为变量传递给函数
  • 2024届数字IC设计秋招面经-鼎信
  • 【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法
  • 前馈神经网络(FFNN)和多层感知机(MLP)
  • EasySwipeMenuLayout - 独立的侧滑删除
  • 优麒麟下载、安装、体验
  • Appium混合页面点击方法tap的使用
  • 求解灰度直方图,如何绘制灰度直方图(数字图像处理大题复习 P1)
  • 8种结构型设计模式对比
  • 【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.12.2和Gazebo11联合仿真环境【教程】
  • msvcp120.dll丢失怎么办?(五种方法快速解决)
  • eslint写jsx报错
  • 最新适合小白前端 Javascript 高级常见知识点详细教程(每周更新中)
  • 积分值和面积、对称性
  • springboot 整合es
  • MyBatisPlus使用自定义JsonTypeHandler实现自动转化JSON
  • LeetCode 2097. 合法重新排列数对【欧拉通路,DFS】2650
  • 学习笔记-接口测试(postman、jmeter)
  • 如何高效批量查询快递单号,提高工作效率?
  • 12万汉语源流词典汉字记性ACCESS\EXCEL数据库
  • 深度解剖数据在队列的应用
  • IMX6ULL移植篇-Linux内核源码目录分析二
  • 汽车行业数据治理方案,助力车企研产供销数据一体化