javascript
若川知乎高赞:有哪些必看的 JS 库?
歡迎星標我的公眾號,回復加群,長期交流學習
我的知乎回答目前2w+閱讀量,270贊,現在發到公眾號聲明原創。
必看的js庫?只有當前階段值不值看。
我從去年7月起看一些前端庫的源碼,歷時一年才寫了八篇《學習源碼整體架構系列》文章(jQuery、underscore、lodash、sentry、vuex、axios、koa、redux源碼),并且繪制了大量的關系圖和原理圖。而如今寫不動了...
得出的結論是:小而美的源碼庫值得看,收益會比較高。那看哪些小而美的源碼庫呢。工作中使用到的相對簡單的庫,就是當前階段值得看的。掌握讀源碼的技能很重要。換句話說:不一定要看,但一定要會看。
我的《學習源碼整體架構系列》文章,基本都寫了我是如何看源碼的,如何調試、提供了很多demo調試、還有圖解,也收到了挺多小伙伴的支持和肯定。雖然也有小伙伴微信私聊我看完就忘記了,但我基本是回答說忘記了不要緊,你已經學會如何看了,撿起來很快,看其他的也快。
以下是幾篇文章鏈接和部分圖解:我的博客可能閱讀體驗更好些。若川的博客
1.學習 jQuery 源碼整體架構,打造屬于自己的 js 類庫學習jQuery源碼,主要學習它的整體架構。無new構造,核心函數 extend,鏈式調用等。
看完也會對原型鏈相關知識有比較深刻的認識。jQuery.extend在線例子codepen
jQuery.extend淺拷貝代碼實現在線例子codepen
jQuery原型關系圖2.學習 underscore 源碼整體架構,打造屬于自己的函數式編程類庫學習underscore源碼,可以學到函數式編程和面向對象編程的如何相輔相成,基于流式編程,如何組織各個工具函數。
underscore鏈式調用圖解3.學習 lodash 源碼整體架構,打造屬于自己的函數式編程類庫
可以學到,為何lodash性能會比underscore高。是因為lodash主要是惰性求值。先把一系列求值的函數(this指向、函數體、參數等)存起來,真正需要求值時,再把函數拿出來調用。
lodash 掛載屬性和方法圖4.學習 sentry 源碼整體架構,打造屬于自己的前端異常監控SDK
學 sentry 源碼 可以學到如何監控錯誤(window.onerror、window.onunhandledrejection),劫持原生函數上報,如何上報,支持fetch則用fetch,不支持則用ajax(xhr)等。
5.學習 vuex 源碼整體架構,打造屬于自己的狀態管理庫 ?學習Vuex源碼可以學到,Vuex如何和Vue結合。Vuex源碼相對簡單,代碼行數也不多,建議使用vue的小伙子都看一看vuex源碼。
6.學習 axios 源碼整體架構,打造屬于自己的請求庫 ?學完可以回答以下等問題:
1.為什么axios既可以當函數調用,也可以當對象使用,比如axios({})、axios.get。
2.簡述axios調用流程。
3.有用過攔截器嗎?原理是怎樣的?
4.有使用axios的取消功能嗎?是怎么實現的?
5.為什么支持瀏覽器中發送請求也支持node發送請求?
7.學習 koa 源碼的整體架構,淺析koa洋蔥模型原理和co原理 ?可以學到如何寫koa中間件,koa洋蔥模型怎么實現的。
koa中間件gif圖調試koa中間件的在線demo
學到co的原理是通過不斷調用generator函數的next方法來達到自動執行generator函數的,類似async、await函數自動執行。
8.學習 redux 源碼整體架構,深入理解 redux 及其中間件原理可以學到redux靈活性和中間件原理及實現。
redux流程圖先回答簡單這些...感覺自己經常在知乎問答宣傳自己的源碼系列文章,然而閱讀量還是很低...
圖片可能有些模糊,可以點擊閱讀原文跳轉到知乎,閱讀體驗更好些。
末尾
你好,我是若川,江湖人稱菜如若川,歷時一年只寫了一個學習源碼整體架構系列~(點擊藍字了解我)
關注我的公眾號若川視野,回復"pdf" 領取前端優質書籍pdf
我的博客地址:https://lxchuan12.gitee.io?歡迎收藏
覺得文章不錯,可以點個在看呀^_^另外歡迎留言交流~
小提醒:若川視野公眾號面試、源碼等文章合集在菜單欄中間【源碼精選】按鈕,歡迎點擊閱讀
總結
以上是生活随笔為你收集整理的若川知乎高赞:有哪些必看的 JS 库?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 组件技术介绍
- 下一篇: 面试官问:能否模拟实现JS的new操作符