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