歡迎
星標
我的公眾號,回復加群
,長期交流學習
我的知乎回答目前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
2.學習 underscore 源碼整體架構,打造屬于自己的函數式編程類庫學習underscore源碼,可以學到函數式編程和面向對象編程的如何相輔相成,基于流式編程,如何組織各個工具函數。
3.學習 lodash 源碼整體架構,打造屬于自己的函數式編程類庫
可以學到,為何lodash性能會比underscore高。是因為lodash主要是惰性求值。先把一系列求值的函數(this指向、函數體、參數等)存起來,真正需要求值時,再把函數拿出來調用。
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中間件的在線demo
學到co
的原理是通過不斷調用generator
函數的next
方法來達到自動執行generator
函數的,類似async、await
函數自動執行。
8.學習 redux 源碼整體架構,深入理解 redux 及其中間件原理可以學到redux靈活性和中間件原理及實現。
先回答簡單這些...感覺自己經常在知乎問答宣傳自己的源碼系列文章,然而閱讀量還是很低...
圖片可能有些模糊,可以點擊閱讀原文跳轉到知乎,閱讀體驗更好些。
末尾
你好,我是若川,江湖人稱菜如若川,歷時一年只寫了一個學習源碼整體架構系列~(點擊藍字了解我)
關注我的公眾號
若川視野
,回復"pdf" 領取前端優質書籍pdf我的博客地址:https://lxchuan12.gitee.io?歡迎收藏
覺得文章不錯,可以點個
在看
呀^_^另外歡迎留言
交流~
小提醒:若川視野公眾號面試、源碼等文章合集在菜單欄中間
【源碼精選】
按鈕,歡迎點擊閱讀