热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

10个很棒的JavaScript库

英文|https:javascript.plainenglish.io8-great-javascript-libraries-for-productivity-10eee7d8f

英文 | https://Javascript.plainenglish.io/8-great-Javascript-libraries-for-productivity-10eee7d8faee

翻译 | 杨小二

Javascript现在已经演变成一种你可以做任何事情的语言。如今,我们创建了服务器端代码、前端代码、移动应用程序代码等等。

这是我以前用于不同项目的一些很棒的JS库的列表。

1、Nodemon

地址:https://www.npmjs.com/package/nodemon

Nodemon 是一个可以实现服务器开发的库。任何更改后,它将自动保存,自动重新启动的服务器(或其他项目)。

它知道何时保存前端文件(例如 CSS),如果你正在更新需要重新启动的后端文件,它只会在你需要时尝试重新启动。

它易于安装并且在你的项目过程中节省了时间,这使得它成为每个项目的必备品。

2、UUID

地址:https://www.npmjs.com/package/uuid

UUID 是一种独特的标识标准,可用于多种数据库和其他语言。PostgreSQL 甚至有一个 UUID 类型可以用于 ID。它通过无法猜测出来增加安全性。

import { v4 as uuidv4 } from 'uuid';
uuidv4(); // ⇨ '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'

它易于使用,每次我需要数据库的唯一值时我都会使用它。库的 ID 符合 UUID 标准。

3、Axios

地址:https://github.com/axios/axios

Axios 是所有 HTTP 请求问题的解决方案。它是一个基于 Promise 的 HTTP 客户端,可简化从 API 请求数据的过程。

你可以输入尽可能少的信息,也可以输入尽可能多的信息。每当我不需要添加参数时,我都喜欢省略它们,而在 Axios 中这是可能的。

axios.get('/profile?id=12345').then(function (response) {// handle successconsole.log(response);}).catch(function (error) {// handle errorconsole.log(error);})
4、Lodash

地址:https://lodash.com/

Lodash 是一个实用程序库,具有大量用于处理字符串、数字、数组和对象的函数。它是一个很棒的库,因为它具有大量的功能和令人惊叹的文档站点。

_.defaults({ 'a': 1 }, { 'a': 3, 'b': 2 });
// → { 'a': 1, 'b': 2 }_.partition([1, 2, 3, 4], n => n % 2);
// → [[1, 3], [2, 4]]

我强烈建议至少检查一下这个库和它的文档。它具有解决高度利基问题的功能和许多常见问题的功能,例如,展平数组。

5、Luxon

地址:https://moment.github.io/luxon/#/

Luxon 是一个现代日期和时间操作库。如果你曾经处理过日期和时间,你选择合适的库是成功的一半。尤其是如果你注定要受到多个时区的影响时,这个库就非常有用。

DateTime.now().setZone('America/New_York').minus({ weeks: 1 }).endOf('day').toISO();let dt = DateTime.now();
dt.toISO(); //=> '2017-04-20T11:32:00.000-04:00'

从某种意义上说,Luxon 比另一个著名日期时间操作库 Moment 更年轻、更现代化。然而,Luxon 使用 Intl 对象,而Moment使用 Date 对象。

6、Faker

地址:https://github.com/marak/Faker.js/

Faker 是我在构建项目早期测试阶段使用的一个库。它是一个可以轻松将真实的测试数据添加到应用程序中的库。

let faker = require('faker');let randomName = faker.name.findName(); // Rowan Nikolaus
let randomEmail = faker.internet.email(); // Kassandra.Haley@erich.biz

Faker 的强项肯定是你可以添加的不同数据的数量。所有数据仅用于测试目的。你可以添加各种地址、电子邮件、姓名,甚至比特币地址和汽车制造商!

如果你厌倦了随处可见的 Lorem Ipsum,你可能想看看这个库。

7、Dotenv

Dotenv 是一个用于确保你的应用程序是安全的库。提高安全性的方法之一就是使用环境变量。这就是这个库的用途,它是用于此目的最常用的库之一。

DB_HOST=localhost
DB_USER=root
DB_PASS=passw0rd

你可以使用应用程序的所有环境变量创建一个 .dotenv 文件。一定不要提交这些,因为这些应该是特定于环境的,或者只在一台 PC 上工作以获得最大的安全性。

8、Mongoose

地址:https://mongoosejs.com/

Mongoose 是一个很棒的库,可以在你使用 MongoDB 数据库时使用。它是一个对象建模库,使用 Mongo 和 Javascript 尽可能容易。

const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/db-url', {useNewUrlParser: true, useUnifiedTopology: true});const Cat = mongoose.model('Cat', { name: String });const kitty = new Cat({ name: 'Taco' });kitty.save().then(() => console.log('Cat added'));

几乎所有的 Mongo 和 Javascript 教程都以这个库为特色,而不是默认的 MongoDB 库,因为它很容易,大多数开发人员都离不开它。

9、Realm

地址:https://realm.io/

Realm 在用于数据库开发的形式上类似于 Mongoose。我只将 Realm 用于移动应用程序开发中,一旦设置好,它就会展现它的工作魅力。

const studentSchema = {name: "Student",properties: {name: "string",grades: "int[]"}
}

对于 React Native 开发来说,真正优秀的数据库选项并不多,我认为 Realm 确实有点填补了这个角色。它的数据库与 Mongoose 非常相似,它可以在 MongoDB 上运行。

10、GatsbyJS

地址:https://www.gatsbyjs.com/

Gatsby 是一个静态的服务器渲染网站库。它类似于 NextJS,虽然它目前缺乏一些功能,但我认为开发人员的体验比我尝试过的其他类型的库都要好。

import React from "react"
export default function Home() {return (

Hello Gatsby!

What a world.

);
}

它使用 React 和 GraphQL 为中小型网站创建了一个非常好的技术堆栈。它适用于从营销到博客的任何内容。

结论

这些只是我过去使用过的一些库。作为开发人员,你可能每天都会遇到新的库,并且很容易过分使用它。

我喜欢尽可能少地使用库,我只使用较大的库或适用于某些问题的库。

非常感谢你的阅读,祝你有美好的一天。

学习更多技能

请点击下方公众号


推荐阅读
  • 使用 ModelAttribute 实现页面数据自动填充
    本文介绍了如何利用 Spring MVC 中的 ModelAttribute 注解,在页面跳转后自动填充表单数据。主要探讨了两种实现方法及其背后的原理。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • LoadRunner中的IP欺骗配置与实践
    为了确保服务器能够有效地区分不同的用户请求,避免多人使用同一IP地址造成的访问限制,可以通过配置IP欺骗来解决这一问题。本文将详细介绍IP欺骗的工作原理及其在LoadRunner中的具体配置步骤。 ... [详细]
  • 本文概述了在GNU/Linux系统中,动态库在链接和运行阶段的搜索路径及其指定方法,包括通过编译时参数、环境变量及系统配置文件等方式来控制动态库的查找路径。 ... [详细]
  • 本文介绍如何使用 Python 计算两个时间戳之间的时间差,并将其转换为毫秒。示例代码展示了如何通过 `time` 和 `datetime` 模块实现这一功能。 ... [详细]
  • 使用jQuery与百度地图API实现地址转经纬度功能
    本文详细介绍了如何利用jQuery和百度地图API将地址转换为经纬度,包括申请API密钥、页面构建及核心代码实现。 ... [详细]
  • 在AngularJS中,有时需要在表单内包含某些控件,但又不希望这些控件导致表单变为脏状态。例如,当用户对表单进行修改后,表单的$dirty属性将变为true,触发保存对话框。然而,对于一些导航或辅助功能控件,我们可能并不希望它们触发这种行为。 ... [详细]
  • 使用REM和媒体查询实现响应式布局
    本文介绍如何利用REM单位和媒体查询(Media Queries)来创建适应不同屏幕尺寸的网页布局。通过具体示例,展示在不同屏幕宽度下如何调整页面元素的样式。 ... [详细]
  • 神策数据分析基础
    本文介绍了基于用户行为的数据分析方法,包括业务问题的提出与定义、具体行为的识别及统计分析流程。同时,详细阐述了如何利用事件模型(Event Model)来描述用户行为,以及在实际应用中的案例分析。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • 本文列举了构建和运行 Struts2 应用程序所需的核心 JAR 文件,包括文件上传、日志记录、模板引擎等关键组件。 ... [详细]
  • selenium通过JS语法操作页面元素
    做过web测试的小伙伴们都知道,web元素现在很多是JS写的,那么既然是JS写的,可以通过JS语言去操作页面,来帮助我们操作一些selenium不能覆盖的功能。问题来了我们能否通过 ... [详细]
  • 本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
author-avatar
漫湾镇团委
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有