10個最值得收藏的JavaScript庫

轉載自Duing(ID:duyi-duing)


圖片源自網絡,僅做配文展示
有一位reddit網友是這樣描述的,小渡很喜歡這種說法:
“immutableJS確保了大型團隊的開發(fā)者不會做一些愚蠢的事情。”
簡而言之:Immutable.js,F(xiàn)acebook的另一個項目,確保了狀態(tài)不會因為使用不可變對象而發(fā)生突變。

正如網友指出那樣,這對于大型團隊的開發(fā)者會極其有用,因為這些人經常會無意識地搞亂了狀態(tài)。
“封裝在Immutable.JS對象里面的數(shù)據(jù)是永遠也不會變的。它總會返回一份新的拷貝。這跟JavaScript形成了羨慕對比,后者的一些操作不會改變你的數(shù)據(jù)(比方說一些數(shù)據(jù)方法,包括map、filter、concat、forEach等),但有的就會(Array的pop、push、splice等)。”
使用Immutable.JS有相當大的限制,但視你的需求不同,那些限制未必有關系。在GitHub上拿到了20000多顆星的Immutable.js已經開始崛起,預計還會繼續(xù)延續(xù),因為開發(fā)者正在花時間理解其中的概念和權衡。
Redux 是一直很火的Dan Abramov/Andrew Clark 項目,后來有迅速成為React狀態(tài)管理和數(shù)據(jù)抓取的首選解決方案。
但GraphQL改變了現(xiàn)狀,主要是在數(shù)據(jù)抓取方面。
我們現(xiàn)在有了Relay Modern (Facebook開發(fā))和Apollo,讓你可以比Redux更高效地抓取并傳遞GraphQL數(shù)據(jù)到React應用的GraphQL客戶端框架。

但就像一位開發(fā)者指出那樣:這些框架和它們的好處未必需要是互斥的。實際上,這幾個一起使用可以提供很好的關注分離,這是web開發(fā)來說可太重要了。


小渡認為 Leaflet 是將適合移動設備的交互式庫,它的地圖添加到你的應用程序中會是一個比較酷的選擇。
它的文件很小,只有39kB,使其成為考慮其他地圖庫的絕佳替代方案。憑借跨平臺的效率和文檔齊全的 API,它擁有讓你墜入愛河所需的一切。

圖片源自網絡,僅做配文展示
在 Leaflet 中,我們需要提供一個 tile 層,因為默認情況下沒有。但這也意味著我們可以從各種免費和高級層中進行選擇。

圖片源自網絡,僅做配文展示

圖片源自網絡,僅做配文展示
作為開發(fā)人員,擁有一個好的開發(fā)組合很重要。人們對你的組合的第一印象有助于決定他們是否會雇用你。還有什么比這個庫更好的工具可以為你的投資組合帶來活力。它不僅可以增強你的網站,還有助于展示實際技能。
Hammer.js 是一個輕量級的 JavaScript 庫,可讓你向 Web 應用程序添加多點觸控手勢。小渡會推薦這個庫來為你的組件添加一些樂趣。你會覺得它非常有趣。

它可以識別由觸摸、鼠標和pointerEvents 做出的手勢。對于 jQuery 用戶,小渡建議使用 jQuery 插件。

很多大神最近使用 D3 通過 React 和 GitHub 上的約翰霍普金斯 CSSE 數(shù)據(jù)存儲庫來可視化 COVID-19 數(shù)據(jù)。這是一個非常有趣的項目,如果你正在考慮做類似的事情,我建議您嘗試一下 D3.js。

花時間配置 popper 元素似乎并不重要,但這些小事情會使你作為開發(fā)人員脫穎而出。它體積小,不占地方。

功能強大且易于使用~
可以看到,以上分享的庫,有的庫高達幾百 K star,有的庫在小 1 K star 徘徊,但也絲毫不影響它們被列在一起。反而,這些體量小的庫,能針對解決某一項問題,核心原理奇妙,官網也做得特別精美。
作為開發(fā)人員,了解和學會使用正確的 JavaScript 庫很重要。它將使你的工作效率更高,并使開發(fā)變得更加容易和快捷。最后,你可以根據(jù)自己的需要選擇哪個庫。
還是那句老話:工具選的好,下班下的早;開發(fā)工作分兩類:寫輪子的為一類,用輪子的為一類;寫輪子也是從用輪子做起的,因為找不到更適用的輪子,才想自己寫一個,分享給大家用;開源萬歲!
?? 好了, 以上就是我的分享,小伙伴們點個贊再走吧 ?? 支持一下哦~ ??,
