分享10個很棒的JavaScript 庫

英文 | https://javascript.plainenglish.io/10-awesome-javascript-libraries-you-should-try-out-in-2021-34ee431cd341
翻譯 | 楊小二
1、Leafle

var map = new L.Map("map", {center: new L.LatLng(40.7401, -73.9891),zoom: 12,layers: new L.TileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png")});
在 Leaflet 中,我們需要提供一個 tile 層,因為默認情況下沒有。但這也意味著我們可以從各種免費和高級層中進行選擇。你可以在此處探索各種免費地圖切片。地址:https://leaflet-extras.github.io/leaflet-providers/preview/。
閱讀文檔:https://leafletjs.com/reference-1.6.0.html
2、FullPage.js

這個開源庫可以幫助你創(chuàng)建全屏滾動網(wǎng)站,正如你在上面的看到的GIF動畫那樣。它易于使用并且有許多自定義選項,因此它被成千上萬的開發(fā)人員使用并在 GitHub 上擁有超過 3 萬Stars也就不足為奇了。
這是你可以在Codepen 演示:https://codepen.io/lelouchb/pen/WNrLvLG
你甚至可以將它與流行的框架一起使用,例如:
react-fullpage
vue-fullpage
angular-fullpage
大約一年前我遇到了這個庫,從那時起它就成了我的最愛之一。這是你幾乎可以在每個項目中都可以使用的少數(shù)庫之一。如果你還沒有開始使用它,那就試試吧,不會讓你失望的。
3、Anime.js

作為最好的動畫庫之一,Anime.js 靈活且易于使用。它可以幫助你的項目添加一些非??岬膭赢?。
Anime.js 適用于 CSS 屬性、SVG、DOM 屬性和 JavaScript 對象,并且可以輕松集成到你的應(yīng)用程序中。
作為開發(fā)人員,擁有一個好的開發(fā)組合很重要。人們對你的組合的第一印象有助于決定他們是否會雇用你。還有什么比這個庫更好的工具可以為你的投資組合帶來活力。它不僅可以增強你的網(wǎng)站,還有助于展示實際技能。
Codepen演示地址:https://codepen.io/lelouchb/pen/XWXoboE

4、Screenfull.js

我在尋找一種可以在項目中實現(xiàn)全屏功能的方法時遇到了這個庫。
如果你還想擁有全屏功能,我建議使用這個庫而不是 Fullscreen API,因為它可以實現(xiàn)跨瀏覽器。
它非常小,這個庫壓縮后只有0.7kB。你甚至都不會注意到它的存在。
演示地址:https://sindresorhus.com/screenfull.js/
閱讀文檔:https://github.com/sindresorhus/screenfull.js
5、Moment.js

處理日期和時間可能是很多開發(fā)者的痛苦,尤其是 API 調(diào)用、不同的時區(qū)、本地語言等。
Moment.js 可以幫助你解決所有這些問題,無論是操作、驗證、解析還是格式化日期或時間。
有很多很酷的實現(xiàn)方法對你的項目會非常有用。例如,我在我的一個博客項目中使用了 .fromNow() 方法來顯示文章發(fā)表的時間。
const moment = require('moment');relativeTimeOfPost = moment([2019, 07, 13]).fromNow();// a year ago
雖然我不經(jīng)常使用它,但我很喜歡它對國際化的支持。例如,我們可以使用 .locale() 方法自定義上述結(jié)果。
// Frenchmoment.locale('fr');relativeTimeOfPostInFrench = moment([2019, 07, 13]).fromNow();//il y a un an// Spanishmoment.locale('es');relativeTimeOfPostInSpanish = moment([2019, 07, 13]).fromNow();//hace un a?o
閱讀文檔:https://momentjs.com/

從2020 年 9 月開始,Moment.js進行維護與更新。
6、Hammer.js

Hammer.js 是一個輕量級的 JavaScript 庫,可讓你向 Web 應(yīng)用程序添加多點觸控手勢。
我會推薦這個庫來為你的組件添加一些樂趣。你會覺得它非常有趣。
它可以識別由觸摸、鼠標和pointerEvents 做出的手勢。對于 jQuery 用戶,我建議使用 jQuery 插件。
(element).hammer(options).bind("pan", myPanHandler);閱讀文檔:http://hammerjs.github.io/getting-started/
7、Masonry

Masonry 是一個 JavaScript 網(wǎng)格布局庫。它非常不錯,我將它用在了我的許多項目中。它可以采用簡單網(wǎng)格元素,并根據(jù)可用的垂直空間放置它們,有點像建房工人,將石頭或砌塊裝入墻壁里。
你可以使用此庫以不同的方式展示你的項目。將它與卡片、圖像、模態(tài)等一起使用。

這是一個簡單的例子,向你展示了它的魔力。好吧,這不是魔術(shù),而是當(dāng)你放大網(wǎng)頁時布局會發(fā)生變化。
這是上面的代碼:
var elem = document.querySelector('.grid');var msnry = new Masonry( elem, {itemSelector: '.grid-item',columnWidth: 400});var msnry = new Masonry( '.grid');
你還可以看看這些項目:
https://halcyon-theme.tumblr.com/
https://tympanus.net/Development/GridLoadingEffects/index.html
https://www.erikjo.com/work
8、D3.js
如果你是一個癡迷于數(shù)據(jù)的開發(fā)人員,那么這個庫非常適合你。我還沒有找到一個可以像 D3 一樣高效和精美地處理數(shù)據(jù)的庫。D3 在 GitHub 上擁有超過 92k stars,是許多開發(fā)人員最喜歡的數(shù)據(jù)可視化庫。
我最近使用 D3 通過 React 和 GitHub 上的約翰霍普金斯 CSSE 數(shù)據(jù)存儲庫來可視化 COVID-19 數(shù)據(jù)。這是一個非常有趣的項目,如果你正在考慮做類似的事情,我建議您嘗試一下 D3.js。
閱讀文檔:https://github.com/d3/d3/wiki
9、Slick

Slick 具有完全響應(yīng)、支持滑動、無限循環(huán)等功能。正如主頁上提到的,它確實是你需要的最后一個旋轉(zhuǎn)木馬。
我使用這個庫已經(jīng)有一段時間了,它為我節(jié)省了很多時間。只需幾行代碼,你就可以為你的輪播添加如此多的功能。
$('.autoplay').slick({slidesToShow: 3,slidesToScroll: 1,autoplay: true,autoplaySpeed: 2000,});

演示與文檔:https://kenwheeler.github.io/slick/
10、Popper.js

Popper.js 是一個約 3 kB 的輕量級 JavaScript 庫,零依賴,它提供了一個可靠且可擴展的定位引擎,你可以使用它來確保所有 popper 元素都定位在正確的位置。
花時間配置 popper 元素似乎并不重要,但這些小事情會使你作為開發(fā)人員脫穎而出。它體積小,不占地方。
閱讀文檔:https://popper.js.org/docs/v2/
結(jié)論
作為開發(fā)人員,了解和學(xué)會使用正確的 JavaScript 庫很重要。它將使你的工作效率更高,并使開發(fā)變得更加容易和快捷。最后,你可以根據(jù)自己的需要選擇哪個庫。
以上就是今天我與你分享的 10 個 JavaScript 庫,你可以立即嘗試并開始在你的項目中使用它們。你還使用過哪些其他很酷的 JavaScript 庫?請在留言區(qū)與我一起來分享它。
感謝你的閱讀。
學(xué)習(xí)更多技能
請點擊下方公眾號
![]()

