學(xué)習(xí) ReactJS 之前,你需要了解多少 JavaScript?
最主要的是要精通 JavaScript,這樣你就可以減少 ReactJS 之旅的復(fù)雜性。
React 是一個建立在 HTML、CSS 和 JavaScript 之上的 UI 框架,其中 JavaScript(JS)負責(zé)大部分的邏輯。如果你對變量、數(shù)據(jù)類型、數(shù)組函數(shù)、回調(diào)、作用域、字符串方法、循環(huán)和其他 JS DOM 操作相關(guān)的主題有一定了解,這些將極大地加快學(xué)習(xí) ReactJS 的步伐。
你對現(xiàn)代 JavaScript 的概念將決定你能多快地掌握 ReactJS 的步伐。你不需要成為一個 JavaScript 專家來開始你的 ReactJS 之旅,但就像對食材的了解是任何希望掌握烹飪的廚師所必須的一樣,學(xué)習(xí) ReactJS 也是如此。它是一個現(xiàn)代的 JavaScript UI 庫,所以你需要了解一些 JavaScript。問題是,需要多少?
示例解釋
假設(shè)我被要求用英語寫一篇關(guān)于“?!钡奈恼拢覍@種語言一無所知。在這種情況下,為了讓我成功地完成任務(wù),我不僅要對主題有概念,還要對指定的語言有概念。
假設(shè)我獲得了一些關(guān)于主題(牛)的知識,我如何計算我需要知道多少英語才能寫出規(guī)定的主題?如果我必須用英語寫一篇關(guān)于其他復(fù)雜話題的文章呢?
這很難搞清楚,不是嗎?我不知道我要寫關(guān)于這個話題的什么東西,但它可能是任何東西。所以要想開始,我必須要有適當(dāng)?shù)挠⒄Z知識,但還不止于此。
極端現(xiàn)實
在開始使用 ReactJS 之前,所需的 JavaScript 數(shù)量也是如此。根據(jù)我的例子情景,ReactJS 是話題“牛”,而 JavaScript 是英語。要想在 ReactJS 中獲得成功,對 JavaScript 的掌握很重要。如果沒有適當(dāng)?shù)?JavaScript 基礎(chǔ),一個人是很難專業(yè)地掌握 ReactJS 的。無論我對這個主題有多少知識,如果我不知道語言的基礎(chǔ),我就不能正確地表達自己。
多少才算夠?
根據(jù)我的經(jīng)驗,當(dāng)你開始你的 ReactJS 之旅時,你應(yīng)該已經(jīng)熟悉了:
- 變量
- 數(shù)據(jù)類型
- 字符串方法
- 循環(huán)
- 條件式
你應(yīng)該對這些具體的 JavaScript 熟悉。但這些只是最基本的先決條件。當(dāng)你試圖創(chuàng)建一個簡單的 React 應(yīng)用時,你將不可避免地需要處理事件。所以,普通函數(shù)、函數(shù)表達式、語句、箭頭函數(shù)的概念,箭頭函數(shù)和普通函數(shù)的區(qū)別,以及這兩類函數(shù)中 this 關(guān)鍵字的詞義范圍,這確實很重要。
但問題是,如果我必須使用 ReactJS 創(chuàng)建一個復(fù)雜的應(yīng)用怎么辦?
獲得啟發(fā)
在 JavaScript 中處理事件、傳播操作符、解構(gòu)、命名導(dǎo)入和默認導(dǎo)入將幫助你理解 React 代碼的工作機制。
最重要的是,你必須了解 JavaScript 本身背后的核心概念。JavaScript 在設(shè)計上是異步的。當(dāng)出現(xiàn)在文件底部的代碼在文件頂部的代碼之前執(zhí)行時,不要驚訝。像 promise、callback、async-await、map、filter 和 reduce 這樣的結(jié)構(gòu),是 ReactJS 中最常見的方法和概念,尤其是在開發(fā)復(fù)雜的應(yīng)用時。
最主要的是要精通 JavaScript,這樣你可以減少 ReactJS 之旅的復(fù)雜性。
越來越好
我很容易說出你需要知道的東西,但你去學(xué)習(xí)它完全是另一回事。大量練習(xí) JavaScript 是必不可少的,但你可能會感到驚訝,我認為這并不意味著你必須等到掌握它。有些概念事先很重要,但你可以在學(xué)習(xí)過程中學(xué)到很多東西。練習(xí)的一部分是學(xué)習(xí),所以你可以開始使用 JavaScript,甚至是 React 的一些基礎(chǔ)知識,只要你以舒適的速度移動并理解在你嘗試任何嚴肅的事情之前做你的“家庭作業(yè)”是一個要求。
立即開始使用 JavaScript
不要費心等到你了解了 JavaScript 的所有方面。那永遠不會發(fā)生。如果這樣做,你將陷入學(xué)習(xí) JavaScript 的永遠循環(huán)中。你們都知道技術(shù)領(lǐng)域是如何不斷發(fā)展和迅速變化的。如果你想開始學(xué)習(xí) JavaScript,請嘗試閱讀 Mandy Kendall 的介紹性文章 通過編寫猜謎游戲?qū)W習(xí) JavaScript。這是一種快速入門的好方法,當(dāng)你看到了可能的情況,我認為你可能會發(fā)現(xiàn)很難停下來。