知乎問答:一年內的前端看不懂前端框架源碼怎么辦?

知乎問答:一年內的前端看不懂前端框架源碼怎么辦?以下是我的回答,閱讀量 1000+。現在轉載到微信公眾號中。鏈接:https://www.zhihu.com/question/350289336/answer/910970733

其他回答的已經很好了。

剛好最近在寫學習源碼整體架構系列,所以來回答下這個問題。先把 JS 基礎打好。比如至少作用域、原型鏈、異步等要掌握好。數組、字符串、正則、對象等 API 一定要熟練,不熟練也可以查閱 MDN[1]文檔,也可以看以下我推薦的文章熟悉一遍。【深度長文】JavaScript 數組所有 API 全解密[2]

JavaScript 字符串所有 API 全解密[3]

正則可以看這個《JavaScript 正則迷你書》[4]

對象 API 看我寫的這篇~JavaScript 對象所有 API 解析 | 若川的博客[5]

掌握 API 后,再掌握 new、call、apply、bind,JS 的繼承、JS 的 this 指向這些。關于這些,我寫了一個面試官問系列,可以看看。若川的知乎專欄[6]

有了以上這些基礎后,接下來就是先看相對簡單的 JS 庫或框架的源碼。比如 jQuery、underscore、lodash、axios 這些相對簡單的源碼。

怎么看源碼?

  1. 借助調試

可以調試后打包后的源代碼。也不用每個函數都知道是干嘛的,理清主線即可。

  1. 多搜索幾篇別人寫的高贊源碼文章,看別人文章,是站在巨人的肩膀上。

  2. 不懂的地方查閱,記錄下來。寫文章記錄下來,覺得寫的還不錯,發布出來。

經過一系列的學習。剛開始可能看的很慢,不懂的地方查閱,記錄下來,就是一種成長。這樣就會有一定的正反饋。越容易持續看完。到后期看著看著,會發現調試一遍,很多代碼都類似,很容易看懂,越學越快,越看越上癮,那說明成長很快。

  1. 最后總結原理

總結自己看完這個框架或者庫的原理是什么,跟網上資料對比,學為已用。

有一定成長后,再去看 vue、vuex、vue-router、react、react-router、react-redux 等更大型的框架或者庫的源碼。

也可以看我寫的學習源碼整體架構系列來學習,學習 vuex 源碼整體架構,打造屬于自己的狀態管理庫[7] 基本都寫了如何調試代碼,我就是按照上述流程來學習的。

我的博客可能閱讀體驗更好些。若川的博客[8]

如果最后發現,別人寫的源碼文章也不過如此,你也能寫,能寫得更好,那就是成長。

原創精選文章

工作一年后,我有些感悟(寫于2017年)

高考七年后、工作三年后的感悟

面試官問:JS的繼承

前端使用puppeteer 爬蟲生成《React.js 小書》PDF并合并

學習 jQuery 源碼整體架構,打造屬于自己的 js 類庫

學習underscore源碼整體架構,打造屬于自己的函數式編程類庫

學習 lodash 源碼整體架構,打造屬于自己的函數式編程類庫

學習 sentry 源碼整體架構,打造屬于自己的前端異常監控SDK

學習 vuex 源碼整體架構,打造屬于自己的狀態管理庫

微信公眾號交流

主要發布前端 | PPT | 生活 | 效率相關的文章,長按掃碼關注。歡迎加我微信lxchuan12(注明來源,基本來者不拒),拉您進【前端視野交流群】,長期交流學習~

參考資料

[1]

MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript

[2]

【深度長文】JavaScript數組所有API全解密: http://louiszhai.github.io/2017/04/28/array/

[3]

JavaScript字符串所有API全解密: http://louiszhai.github.io/2016/01/12/js.String/

[4]

《JavaScript正則迷你書》: https://juejin.im/post/59cc61176fb9a00a437b290b

[5]

JavaScript 對象所有API解析 | 若川的博客: http://lxchuan12.github.io/js-object-api

[6]

若川的知乎專欄: https://zhuanlan.zhihu.com/lxchuan12

[7]

學習 vuex 源碼整體架構,打造屬于自己的狀態管理庫: https://zhuanlan.zhihu.com/p/92906380

[8]

若川的博客: https://lxchuan12.cn/posts

由于公眾號限制外鏈,點擊讀原文,或許閱讀體驗更佳,覺得文章不錯,可以點個在看呀^_^

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276495.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276495.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276495.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

幫自己發個求職簡歷

幫自己發個求職簡歷 發個求職信息。本人擅長Web開發,尤其擅長Flex,愿從事Web開發,最好是Web前端開發,下面是我的詳細個人簡歷: 個人信息: 姓名:伍國耀 年齡:23 性別:男 專…

python函數 global_**Python的函數參數傳遞 和 global

函數的參數到底是傳遞的一份復制的值,還是對內存的引用?我們看下面一段代碼:a []def fun(x):x.append(1)fun(a)print(a)想想一下:如果傳遞的是一份復制的值,那么列表a應該是不會變化的,還是空列表&#xf…

冷啟動問題:如何構建你的機器學習組合?

作為即將告別大學的機器學習畢業狗的你,會不會有種迷茫的感覺?你知道 HR 最看重的是什么嗎?在求職季到來之前,畢業狗要怎么做,才能受到 HR 的青睞、拿到心儀的 Offer 呢?負責幫助應屆生找到機器學習工作的 …

JavaScript 對象所有API解析【2020版】

寫于 2017年08月20日,雖然是2017年寫的文章,但現在即將2020年依舊不過時,現在補充了2019年新增的ES10 Object.fromEntries()。發到公眾號申明原創。若川順便在此提前祝大家:2020年更上一層樓。近日發現有挺多人對對象基礎API不熟悉…

javascript操作符之new 也瘋狂 (2)

JavaScript本是一種基于原形的(prototypal)語言,但它的“new”操作符看起來有點像經典語言。這迷惑了廣大程序員們,并導致了很多使用上的問題。 在JavaScript中,不要用到new Object()這種操作,該用{ }來代替…

python中if語句缺省else_9_【Python學習分享文章】_if(條件語句)

【Python學習分享文章】_if(條件語句)_logicalJudgement介紹及基本操作綜述計算機的“條件語句”和生活中的“條件成立”是不一樣的。一個生活中的例子如果被計算機執行則是如下段子:老婆讓程序員老公去買蘋果,說:“去水果店買5個蘋果&#x…

PHP生成各種驗證碼和Ajax驗證

轉載鏈接:http://www.helloweba.com/view-blog-191.html 驗證碼在WEB應用中非常重要,通常用來防止用戶惡意提交表單,如惡意注冊和登錄、論壇惡意灌水等。本文將通過實例講解使用PHP生成各種常見的驗證碼包括數字驗證碼、數字字母驗證碼、中文…

若川的2019年度總結,波瀾不驚

從2014年開始寫年度總結至今已經六個年頭了。正如孔子所說:逝者如斯夫,不舍晝夜。2019年的年度總結寫得比較晚,都快農歷新年了,此刻在家里繼續寫完這篇文章。往年基本是元旦之后幾天就寫完了。我的年度總結盡量寫得非技術人員也能…

如何正確選擇倉儲物流供應商?

如何正確選擇倉儲物流供應商? 以前有做電商的朋友向我咨詢過怎么去選擇優質的倉儲物流供應商?有哪些能做作為關鍵問題進行參考。作為一個優秀的合作伙伴是可以為客戶提供超乎預期的服務的,上海維佳供應鏈服務專業提供物流外包解決倉儲物流供應…

在虛機上安裝WIN2003

Moss2-turn on-WM;SJY;SJYM;666666備注:計算機名在網絡上必須是唯一的。姓名:WP; 單位:SJY; 計算機名稱:SJYP; 密碼:666666server 2003 R2版 MDGJK-PF6YQ-PD8DJ-RFQVM-7WKWG在“網絡設置”頁面上,單擊“典型…

python字典獲取關聯值_【Python實戰12】使用字典關聯數據

現在我的手里有了新的一組數據,數據內容如下:james.txt:James Lee,2002-3-14,2-34,3:21,2.34,2.45,3.01,2:01,2:01,3:10,2-22,2-01,2.01,2:16julie.txt:Julie Jones,2002-8-17,2.59,2.11,2:11,2:23,3-10,2-23,3:10,3.21,3-21,3.01…

Sending HTML content in an email using PHP

轉載鏈接&#xff1a;http://code.web-max.ca/misc_htmlemail.php 發送一個HTML格式的電子郵件&#xff0c;主要在郵件的頭信息中定義郵件正文的類型&#xff1a; Content-Type:text/html;charset"utf-8"。 示例&#xff1a; <?php// Example $HTML …

Realtime Ray Tracing RenderMan Point Cloud

這里演示的是演示的是光線與包圍盒測試。在裝備Winfast 8800GT 512M的臺式機上可以進行每秒4.6億次點到射線的距離計算計算&#xff0c;用于判斷點是否真正的與射線相交。外部數據的填充與準備延遲依舊是GPGPU應用的一個巨大門檻。白色是命中的包圍盒&#xff0c;綠色的就是射線…

SharePoint文檔上傳管理

前臺代碼: <% Control Language"C#" AutoEventWireup"true" CodeBehind"FileUpload.ascx.cs" Inherits"UploadFile.FileUpload" %><table><tr><td style"width:138px; height: 24px;">請選擇列表:…

如何制定有價值的目標

寫于2017年07月09日23:29現在修改發布到公眾號聲明原創公司會制定一系列目標&#xff0c;個人也可以制定一些目標&#xff0c;有利于自我學習成長。那么看我這篇文章可以告訴你如何制定有價值的目標。會制定有價值的目標&#xff0c;絕對超越很多人。SMART原則王健林之前說定個…

清除dns緩存命令行_怎么防止移動dns劫持,防止移動dns劫持要先了解什么是dns劫持...

本人以網絡技術出身&#xff0c;近兩年接觸CDN網絡&#xff0c;處理了一些CDN方面的網絡問題&#xff0c;大多數以運營商丟包&#xff0c;延遲抖動為主&#xff0c;也處理一些硬件故障&#xff0c;比如機械硬盤的讀寫io測試&#xff0c;內存條兼容性測試&#xff0c;服務器IPMI…

php 修改上傳文件大小 (max_execution_time post_max_size)

轉載鏈接&#xff1a;http://hi.baidu.com/ttl289/item/683c8223a54c6d0f76272cd7 有些朋友要通過自己的網站后臺&#xff0c;包括論壇&#xff0c;來上傳一些文件&#xff0c;php一般為2m&#xff0c;或8m&#xff08;以下我們按默認為2m&#xff09;&#xff0c;接下來就是來…

移動硬盤格式化(pc和mac共用)-菜鳥級解決方案[轉]

用pc的時候買了一個320G的移動硬盤&#xff0c;從來沒考慮過什么格式化的問題&#xff0c;插上就用了。 后來接觸mac才發現pc和mac在移動存儲設備的格式化上還是有不少沖突的。如果你的移動硬盤mac上不能修改&#xff0c;或者pc上找不到&#xff0c;那就盡情得批判萬惡的資本主…

【php】php的ssh2擴展的安裝

ssh2(secure shell2)&#xff0c;對于遠端主機提供高安全性的資料傳輸工作。安裝&#xff1a;1、首先要裝OpenSSL。 2、要安裝 libssh2../configure && make all install3、再然后&#xff0c;安裝PECL/ssh2可以使用 pear install ssh2安裝&#xff08;有的說是 pear i…

回答知乎問題:你寫過什么自認為驚艷的詩?

首次整理于 2019-07-27 22:04:00&#xff0c;現在整理發布在公眾號申明原創。整理了一下大學期間2012年&#xff5e;2016年發布在QQ空間&#xff0c;自己感覺寫得還行的七首“詩詞”。回答知乎問題&#xff1a;你寫過什么自認為驚艷的詩&#xff1f;中國古詩詞博大精深。小時候…