美文网首页
无敌的 NPM 软件包

无敌的 NPM 软件包

作者: CMaggie | 来源:发表于2021-04-28 11:23 被阅读0次

    实用工具

    Lodash

    lodash是一套现代 JavaScript 实用程序库,提供模块化、性能与多种附加功能。可提供关于 JavaScript 数组、对象及其他数据结构的多种实用功能。

    安装及示例

    ##yarn add lodash##
    // -----------------------------深度比较两个对象的值是否全相等
    import { isEqual, cloneDeep, uniqBy, sortBy } from "lodash";
    
    const object = { a: 1 };
    const other = { a: 1 };
    
    isEqual(object, other);
    // => true
    
    object === other;
    // => false
    
    // -----------------------------深拷贝
    const objects = [{ a: 1 }, { b: 2 }];
    
    const deep = cloneDeep(objects);
    console.log(deep[0] === objects[0]);
    // => false
    
    // -----------------------------数组去重
    uniqBy([{ x: 1 }, { x: 2 }, { x: 1 }], "x");
    // => [{ 'x': 1 }, { 'x': 2 }]
    
    // -----------------------------数组排序
    const users = [
      { user: "fred", age: 48 },
      { user: "barney", age: 36 },
      { user: "fred", age: 40 },
      { user: "barney", age: 34 },
    ];
    sortBy(users, "age");
    /*
    [
      { 'user': 'barney', 'age': 34 },
      { 'user': 'barney', 'age': 36 },
      { 'user': 'fred', 'age': 40 },
      { 'user': 'fred', 'age': 48 },
    ];
    */
    

    qs

    qs 处理 URL 查询字符串,支持内嵌对象和数组。简而言之,就是将对象和 URL 地址的参数互相转换

    安装及示例

    ##yarn add qs##
    import { parse, stringify } from "qs";
    
    // 用途一
    // 将 浏览器上 URL地址参数转换为对象(字符串转对象)
    const urlParams = parse(window.location.href.split("?")[1]);
    
    // 用途二
    // 将对象参数 传递给到后端接口--GET 请求  (对象转字符串)
    const params = {
      name: "wang",
      age: "18",
      sex: "女",
    };
    
    // =>  /api/user?name=wang&age=18&sex=%E5%A5%B3
    const apiUrl = `/api/user?${stringify(params)}`;
    

    numeral

    numeral是一个专门用来格式化数字的 NPM 库,同时 numeral 还能解析各种格式的数字。

    安装及示例

    ##yarn add numeral##
    import numeral from "numeral";
    
    // 解析数字
    numeral("10,000.12"); // 10000.12
    numeral("$10,000.00"); // 10000
    numeral("3.467TB"); // 3467000000000
    numeral("-76%"); // -0.76
    
    // 格式化
    
    numeral(10000.23).format("0,0"); // '10,000'
    numeral(1000.234).format("$0,0.00"); // '$1,000.23'
    

    path-to-regexp

    path-to-regexp用来处理 url 中地址与参数,能够很方便得到我们想要的数据。
    js 中有 RegExp 方法做正则表达式校验,而 path-to-regexp 可以看成是 url 字符串的正则表达式。

    安装及示例

    ##yarn add path-to-regexp##
    import pathToRegexp from "path-to-regexp";
    
    const re = pathToRegexp("/foo/:bar");
    console.log(re); // /^\/foo\/((?:[^\/]+?))(?:\/(?=$))?$/i
    
    //compile用于填充 url 字符串的参数值。
    var pathToRegexp = require("path-to-regexp");
    
    var url = "/user/:id/:name";
    var data = { id: 10001, name: "bob" };
    
    // /user/10001/bob
    console.log(pathToRegexp.compile(url)(data));
    

    日期格式 Day.js

    Day.js 是一款快速且轻量化的 Moment.js(自 2020 年 9 月起进入纯维护模式,不再开发新版本) 替代方案。二者拥有类似的 API,只要你接触过 Moment.js,就能够快速上手 Day.js。

    安装及示例

    ##yarn add dayjs##
    import dayjs from "dayjs";
    
    const myformat = "YYYY-MM-DD HH:mm:ss";
    
    // -------------------------以字符串形式返回 当前时间
    const data = dayjs().format(myformat);
    // =>  2020-11-25 12:25:56
    
    // -------------------------日期格式化
    const data1 = dayjs("2020-11-25 12:25:56").format("YYYY/MM/DD HH/mm/ss");
    // => 2020/11/25 12/25/56
    
    // -------------------------多久之前
    var relativeTime = require("dayjs/plugin/relativeTime");
    dayjs.extend(relativeTime);
    const data1 = dayjs("2020-11-25 11:40:41").fromNow();
    
    

    相关文章

      网友评论

          本文标题:无敌的 NPM 软件包

          本文链接:https://www.haomeiwen.com/subject/dxcvrltx.html