一個(gè)治愈 JavaScript 疲勞的學(xué)習(xí)計(jì)劃

譯者:網(wǎng)絡(luò)埋伏紀(jì)事
譯文地址:http://www.zcfy.cc/article/1617
原文:https://medium.freecodecamp.com/a-study-plan-to-cure-javascript-fatigue-8ad3a54f2eb1#.d39y4izhb

像其他人一樣,我最近偶然看到 Jose Aguinaga 的文章《在 2016 年學(xué) JavaScript 是一種什么樣的體驗(yàn)》”键菱。

譯者注:中文翻譯在此谬墙。

很顯然,這篇文章觸到了很多人的痛點(diǎn):我看到它兩次榮登 Hacker News 的榜首经备。它也是 /r/javascript 上最熱門(mén)的文章芭梯,并且截至目前它在 Medium 上有超過(guò) 10K 個(gè)喜歡 - 可能比我自己所有文章加在一起還要多。但是誰(shuí)在乎呢弄喘?

不過(guò)這不足為奇:我早就知道 JavaScript 生態(tài)圈會(huì)讓人困惑。實(shí)際上甩牺,我做 JavaScript 2016年的概況調(diào)查的最大原因就是想找到哪些庫(kù)是真正流行的蘑志,去蕪存菁。

但是今天贬派,我想更進(jìn)一步急但。只是抱怨事物的狀態(tài)并沒(méi)有什么卵用,我打算給你一個(gè)實(shí)實(shí)在在的搞乏、一步一步征服 JavaScript 生態(tài)圈的學(xué)習(xí)計(jì)劃波桩。

目標(biāo)人群

如果你是如下之一,那么本學(xué)習(xí)計(jì)劃就是為你定制的:

  • 你已經(jīng)熟悉了基礎(chǔ)編程概念请敦,比如變量和函數(shù)镐躲。

  • 你可能已經(jīng)用諸如 PHP 和 Python 之類的語(yǔ)言做過(guò)后臺(tái)的工作,并且可能為一些簡(jiǎn)單技巧用過(guò)諸如 jQuery 這種前端庫(kù)侍筛。

  • 你現(xiàn)在想從事一些更正規(guī)的前端開(kāi)發(fā)萤皂,但是在開(kāi)始之前就被框架和庫(kù)淹沒(méi)。

我們將講解的事情

  • 一個(gè)現(xiàn)代 JavaScript Web 應(yīng)用看起來(lái)像什么樣子

  • 為什么你不能只用 jQuery

  • 為什么 React 是最安全的選擇

  • 為什么你也許不需要先“正確地學(xué)習(xí) JavaScript“

  • 如何學(xué)習(xí) ES6 語(yǔ)法

  • 為什么要以及如何學(xué)習(xí) Redux

  • GraphQL 是什么以及為什么它是一個(gè)大事

  • 之后該學(xué)什么

這里提到的資源

聲明:本文將包含一些對(duì) Wes Bos 所做課程的附屬鏈接匣椰,但是我推薦他的素材是因?yàn)槲艺嫘恼J(rèn)為不錯(cuò)裆熙,而不是為了推廣。

如果你想找其它資源禽笑,那么可以看看 Mark Erikson 維護(hù)的一份 React入录、ES6 和 Redux 的長(zhǎng)長(zhǎng)鏈接列表。

此 JavaScript 非彼 JavaScript

在開(kāi)始之前佳镜,我們需要確保我們談?wù)摰氖峭患虑榱鸥濉H绻闼阉?"學(xué)習(xí) JavaScript" 或者 "JavaScript 學(xué)習(xí)計(jì)劃",會(huì)找到大量教你如何學(xué)習(xí) JavaScript 語(yǔ)言 的資源邀杏。

但是這實(shí)際上是 簡(jiǎn)單的 部分贫奠。你肯定可以深入挖掘和學(xué)習(xí)這門(mén)語(yǔ)言中復(fù)雜的部分唬血,然而事實(shí)是大多數(shù) web 應(yīng)用只用了相對(duì)簡(jiǎn)單的代碼。換句話說(shuō)唤崭,為編寫(xiě) web 應(yīng)用拷恨,你所需的 80% 知識(shí)通常只涉及標(biāo)準(zhǔn) JavaScript 書(shū)的前幾章。

最難搞定的是掌握 JavaScript 生態(tài)圈谢肾,這個(gè)生態(tài)圈有不計(jì)其數(shù)的競(jìng)爭(zhēng)性的框架和庫(kù)腕侄。好消息是,這剛好是本學(xué)習(xí)計(jì)劃關(guān)注的問(wèn)題芦疏。

JavaScript 應(yīng)用的構(gòu)建單元

要理解為什么現(xiàn)代 JavaScript 應(yīng)用好像如此復(fù)雜冕杠,你首先得理解它們的工作機(jī)制。

對(duì)于初學(xué)者酸茴,我們來(lái)看看大約在 2008 年的“傳統(tǒng)” web 應(yīng)用:

  1. 數(shù)據(jù)庫(kù)發(fā)送數(shù)據(jù)給你的后臺(tái)(比如你的 PHP 或者 Rails 應(yīng)用)分预。

  2. 后臺(tái)讀取該數(shù)據(jù),并輸出 HTML薪捍。

  3. HTML 被發(fā)送給瀏覽器笼痹,瀏覽器將其顯示為 DOM(即,網(wǎng)頁(yè))

現(xiàn)在很多這種應(yīng)用也會(huì)在客戶端塞進(jìn)一些 JavaScript 代碼來(lái)添加交互性酪穿,比如標(biāo)簽和模態(tài)窗口凳干。但是從本質(zhì)上講,瀏覽器依然是接收 HTML 并且從這里開(kāi)始被济。

現(xiàn)在把它與“現(xiàn)代" 2016年的 Web 應(yīng)用(也稱為"單頁(yè)應(yīng)用“)比較:

注意到區(qū)別沒(méi)有救赐?服務(wù)器現(xiàn)在是發(fā)送數(shù)據(jù),而不是發(fā)送 HTML只磷,并且“數(shù)據(jù)到HTML"轉(zhuǎn)換步驟發(fā)生在客戶端 (這也是為什么你要把數(shù)據(jù)與代碼一起發(fā)送经磅,告訴客戶端如何執(zhí)行所說(shuō)的轉(zhuǎn)換)。

這有很多含義喳瓣。首先馋贤,好的部分是:

  • 對(duì)于給定內(nèi)容塊,只發(fā)送數(shù)據(jù)比發(fā)送整個(gè) HTML 頁(yè)面更快畏陕。

  • 客戶端可以立即切換內(nèi)容配乓,而不需要像以前那樣刷新瀏覽器窗口(這也是術(shù)語(yǔ)“單頁(yè)應(yīng)用”的由來(lái))。

壞的部分是:

  • 首次加載更長(zhǎng)惠毁,因?yàn)?數(shù)據(jù)到 HTML”代碼庫(kù)會(huì)變得很大犹芹。

  • 你現(xiàn)在也需要一個(gè)地方來(lái)存儲(chǔ)和管理客戶端上的數(shù)據(jù),從而方便緩存或者檢查它鞠绰。

而惡心的部分是:

  • 恭喜 - 你現(xiàn)在不得不處理客戶端技術(shù)棧腰埂,這會(huì)變得跟服務(wù)器端技術(shù)棧一樣復(fù)雜。

客戶端-服務(wù)器光譜

那么蜈膨,既然有這么多缺點(diǎn)屿笼,為什么要受這種罪呢牺荠?為什么不就沿襲過(guò)去 PHP 應(yīng)用的老套路呢?

好吧驴一,假設(shè)你正在寫(xiě)一個(gè)計(jì)算器休雌。如果用戶想知道 2 + 2 是多少,那么當(dāng)瀏覽器完全有能力做這種事情的時(shí)候肝断,回到服務(wù)器執(zhí)行這種操作然后再返回過(guò)來(lái)就很毫無(wú)意義了杈曲。

另一方面,如果你只是創(chuàng)建一個(gè)純靜態(tài)網(wǎng)站胸懈,比如博客啤呼,那么直接在服務(wù)器上生成最終的 HTML 就挺合適的情龄。

事實(shí)是,大多數(shù) web 應(yīng)用介于光譜的中間地帶凯沪。問(wèn)題是要知道在哪里遭顶。

但是關(guān)鍵的事情是 這個(gè)光譜是不連續(xù)的 :你不能從一個(gè)純服務(wù)器端應(yīng)用開(kāi)始驶睦,慢慢走向一個(gè)純客戶端應(yīng)用签财。在某個(gè)點(diǎn)(分水線 divide)伍茄,你會(huì)被強(qiáng)制停下來(lái),重構(gòu)所有東西绞灼,否則會(huì)以一大堆不可維護(hù)的意大利面條式的代碼而告終。

這就是為什么你不應(yīng)該不管做什么都只用 jQuery 的原因呈野。你可以把 jQuery 當(dāng)作是牛皮膠布低矮。用它對(duì)付家里的小修小補(bǔ)還是很方便,但是如果你到處貼就很難看了被冒。

另一方面军掂,現(xiàn)代 JavaScript 框架更像 3D 打印的一個(gè)替換零件:要花更長(zhǎng)時(shí)間,但是結(jié)果是更干凈更堅(jiān)固昨悼。

也就是說(shuō)蝗锥,掌握現(xiàn)代 JavaScript 技術(shù)棧是個(gè)賭注,不管從哪里開(kāi)始率触,大多數(shù) web 應(yīng)用 可能 遲早都會(huì)出現(xiàn)在分水線的右邊终议。所以,是的葱蝗,要干的活更多了穴张,但是有備無(wú)患更好。

第 0 周: JavaScript 基礎(chǔ)

除非你是一名純后臺(tái)開(kāi)發(fā)者两曼,否則你可能會(huì)了解點(diǎn) JavaScript皂甘。當(dāng)然,即使你不了解悼凑,如果你是一名 PHP 或者 Java 開(kāi)發(fā)者偿枕,JavaScript 的類 C 語(yǔ)法也會(huì)看起來(lái)有點(diǎn)熟悉璧瞬。

但是如果 JavaScript 對(duì)你來(lái)說(shuō)是完全摸不著頭腦,也不要灰心渐夸。有很多免費(fèi)資源在那嗤锉,可以快速讓你了解最新情況。比如捺萌,一個(gè)不錯(cuò)的出發(fā)點(diǎn)是 Codecademy 的 JavaScript 課档冬。

第 1 周: 從 React 開(kāi)始

現(xiàn)在知道了基礎(chǔ) JavaScript 語(yǔ)法,而且你理解了為什么 Javascript 應(yīng)用顯得那么復(fù)雜桃纯,下面我們?cè)斦効崾摹5降滓獜哪睦镩_(kāi)始呢?

我相信答案是 React态坦。

React 是一個(gè)由 Facebook 創(chuàng)建和開(kāi)源的 UI 庫(kù)盐数。也就是說(shuō),它負(fù)責(zé)“數(shù)據(jù)到HTML"這一步(視圖層)伞梯。

現(xiàn)在不要誤會(huì)我:我不是告訴你因?yàn)?React 是 最好 的庫(kù)玫氢,所以要選它(因?yàn)檫@太主觀了),而是因?yàn)樗?相當(dāng)不錯(cuò) 谜诫。

  • React 也許不是最流行的庫(kù)漾峡,但是它是相當(dāng)流行的。

  • React 也許不是最輕量級(jí)的庫(kù)喻旷,但是它是相當(dāng)輕量級(jí)的生逸。

  • React 也許不是最容易學(xué)的,但是它是相當(dāng)容易學(xué)的且预。

  • React 也許不是最優(yōu)雅的庫(kù)槽袄,但是它是相當(dāng)優(yōu)雅的。

也就是說(shuō)锋谐,React 也許并非是所有情況的 最佳 選擇遍尺,但是我相信它是最 安全 的。相信我涮拗,"就在你剛開(kāi)始的時(shí)候"并不是承擔(dān)技術(shù)選擇風(fēng)險(xiǎn)的最佳時(shí)間乾戏。

React 也會(huì)給你介紹一些有用的概念,比如組件三热、應(yīng)用程序狀態(tài)歧蕉、無(wú)狀態(tài)函數(shù)。不管在你職業(yè)生涯期間最終使用哪個(gè)框架或者庫(kù)康铭,這些概念都會(huì)被證明是有用的惯退。

最后,React 有一個(gè)很大的生態(tài)圈从藤,這個(gè)生態(tài)圈還包括其它可以與 React 配合得很好的包和庫(kù)催跪。并且它的完全普及意味著你可以在 Stackoverflow 這類網(wǎng)站上找到很多幫助锁蠕。

我個(gè)人推薦 We Bos 的 React初學(xué)者課程。我自己就是看這個(gè)課程學(xué)的懊蒸,而且它剛剛用最新的 React 最佳實(shí)踐徹底修訂過(guò)荣倾。

你應(yīng)該首先“正確地學(xué)習(xí) JavaScript” 嗎?

如果你是一個(gè)按部就班的學(xué)習(xí)者骑丸,你可能想在做其它事情之前很好地掌握 JavaScript 的基本原理舌仍。

但是對(duì)于其它人來(lái)說(shuō),這就好像是學(xué)游泳的時(shí)候?qū)W習(xí)人體解剖學(xué)和流體動(dòng)力學(xué)一樣通危。確實(shí)铸豁,這二者都在游泳中起了很大的作用,但是跳到游泳池里會(huì)更好玩菊碟!

這里沒(méi)有正確或者錯(cuò)誤的答案节芥,一切都取決于你的學(xué)習(xí)方式。事實(shí)是逆害,反正最基礎(chǔ)的 React 教程可能會(huì)只用到 JavaScript 很小的一個(gè)子集头镊,所以只關(guān)注你現(xiàn)在需要的,剩下的以后再說(shuō)魄幕,這樣會(huì)更好相艇。

這也適用于整個(gè) JavaScript 生態(tài)圈。現(xiàn)在先不要對(duì)理解像 Webpack 或者 Babel 這些東西的來(lái)龍去脈操太多心纯陨。實(shí)際上 React 最近推出了它自己的小命令行工具厂捞,用這個(gè)工具你完全不需要構(gòu)建任何配置,就可以創(chuàng)建應(yīng)用队丝。

第 2 周: 你的第一個(gè) React 項(xiàng)目

下面我們假設(shè)你剛完成了一個(gè) React 課程。如果你跟我一樣欲鹏,那么兩件事情可能是真的:

  • 你已經(jīng)把你剛學(xué)的內(nèi)容忘掉了一半机久。
  • 你迫不及待要把你記得的一半用于實(shí)踐。

我相信學(xué)習(xí)一個(gè)框架或者一門(mén)語(yǔ)言的最好方式是馬上就用它赔嚎。而個(gè)人項(xiàng)目是嘗試新技術(shù)的完美時(shí)機(jī)膘盖。

個(gè)人項(xiàng)目可以是任何東西,小到一個(gè)簡(jiǎn)單頁(yè)面尤误,大到一個(gè)復(fù)雜的 Web 應(yīng)用侠畔,但是我認(rèn)為重新設(shè)計(jì)你的個(gè)人網(wǎng)站可能是一個(gè)剛剛好。并且损晤,我知道你可能已經(jīng)把你的個(gè)人網(wǎng)站擱置多年了软棺!

我之前提到過(guò),用單頁(yè)應(yīng)用模式開(kāi)發(fā)靜態(tài)內(nèi)容確實(shí)有點(diǎn)大材小用尤勋,不過(guò) React 實(shí)際上有一款秘密武器:Gatsby喘落。這是一個(gè) React 靜態(tài)網(wǎng)站生成器茵宪,可以體驗(yàn)一下 React 的所有優(yōu)點(diǎn)。

使用 Gatsby 來(lái)上手 React 有如下幾個(gè)好處:

  • 預(yù)先配置好的 Webpack瘦棋,意味著你要省下來(lái)很多麻煩事稀火。

  • 基于目錄結(jié)構(gòu)自動(dòng)生成路由。

  • 所有 HTML 內(nèi)容也是由服務(wù)器端生成的赌朋,所以你得到了兩全其美的結(jié)果凰狞。

  • 靜態(tài)內(nèi)容意味著不需要服務(wù)器,可以很簡(jiǎn)單的托管在 GitHub Pages上沛慢。

我就是用 Gatsby 搞定 State Of JavaScript 網(wǎng)站赡若,完全不需要操心路由、構(gòu)建工具的配置颠焦,以及服務(wù)器端渲染斩熊,為我節(jié)省了大把時(shí)間。

第 3 周: 掌握 ES6

在我自己學(xué)習(xí) React 的探索中伐庭,我很快就發(fā)現(xiàn)我可以很輕松地復(fù)制粘貼代碼示例粉渠,但是有很多東西我仍然不懂。

特別是圾另,我對(duì) ES6 引入的一些新功能不太熟悉霸株,比如:

  • 箭頭函數(shù)

  • 對(duì)象解構(gòu)

  • 展開(kāi)運(yùn)算符

如果你處境相同,那么可能到了要花幾天學(xué)習(xí)一下 ES6 的時(shí)候了集乔。如果你喜歡 React 初學(xué)者課程去件,你可能想掏錢(qián)看看 Wes 的優(yōu)秀視頻 ES6 for Everybody

或者如果你喜歡免費(fèi)資源的話扰路,那就看看 Nicolas Bevacqua 的書(shū)《Practical ES6》尤溜。

掌握 ES6 的一個(gè)好練習(xí)是翻一下較早的代碼庫(kù)(比如你在第一周創(chuàng)建的!)汗唱,盡可能將代碼轉(zhuǎn)換為 ES6 的更短宫莱、更簡(jiǎn)潔的語(yǔ)法。

第 4 周: 掌握狀態(tài)管理

到了這里哩罪,你應(yīng)該有能力創(chuàng)建一個(gè)支持靜態(tài)內(nèi)容的簡(jiǎn)單 React 前端了授霸。

但是真正的 Web 應(yīng)用不會(huì)是靜態(tài)的:它們需要從某個(gè)地方獲取數(shù)據(jù),通常是某種類型的數(shù)據(jù)庫(kù)际插。

現(xiàn)在你只能向一個(gè)組件發(fā)送數(shù)據(jù)碘耳,但是這很快會(huì)變得很糟糕。比如框弛,如果兩個(gè)組件需要顯示同一塊數(shù)據(jù)該怎么辦辛辨?或者二者兩個(gè)組件需要相互對(duì)話該怎么辦?

這就是狀態(tài)管理起作用的地方。你可以把狀態(tài)(換句話說(shuō)愉阎,就是數(shù)據(jù))存儲(chǔ)到一個(gè)全局的倉(cāng)庫(kù)中绞蹦,然后將其分發(fā)到你的 React 組件中,而不是一點(diǎn)一點(diǎn)存儲(chǔ)在每個(gè)組件中:

在 React 陣營(yíng)中榜旦,最熱門(mén)的狀態(tài)管理庫(kù)是 Redux幽七。Redux 不僅可以幫助你集中管理數(shù)據(jù),還可以對(duì)數(shù)據(jù)的操作制定嚴(yán)格的協(xié)議溅呢。

可以地把 Redux 當(dāng)作是一個(gè)銀行:你不能到本地的分行澡屡,手動(dòng)修改你的賬戶總額(“嘿,就讓我多加幾個(gè)零吧咐旧!”)驶鹉。而是填寫(xiě)一個(gè)存款單,然后把它交給授權(quán)執(zhí)行該操作的銀行出納員铣墨。

同樣室埋,Redux 也不允許你直接修改全局狀態(tài)。而是將 action 傳遞給 reducer伊约。reducer 是一個(gè)特殊的函數(shù)姚淆,它執(zhí)行修改狀態(tài)的操作,返回新的更新了的狀態(tài)為結(jié)果屡律。

所有這些額外工作帶來(lái)的是整個(gè)應(yīng)用中高度標(biāo)準(zhǔn)化和可維護(hù)的數(shù)據(jù)流腌逢,并且數(shù)據(jù)流可以通過(guò)訪問(wèn) Redux Devtools 這類工具來(lái)可視化:

你可以再次與我們的朋友 Wes 在一起,用他的 Redux 課程來(lái)學(xué)習(xí) Redux超埋,這套課程是完全免費(fèi)的搏讶。

或者,你可以用 Redux 的發(fā)明人 Dan Abramov 在 egghead.io 上的視頻課程來(lái)學(xué)習(xí)霍殴。這套課程也是免費(fèi)的媒惕。

第 5 周: 用 GraphQL 創(chuàng)建 API

迄今為止,我們差不多只談及了客戶端来庭,這只是等式的一半妒蔚。即使你不需要完全掌握整個(gè) Node 生態(tài)圈,也需要了解對(duì)于任何 Web 應(yīng)用都很關(guān)鍵的一點(diǎn):數(shù)據(jù)是如何從服務(wù)器到客戶端的巾腕。

毫不奇怪,這個(gè)環(huán)節(jié)也是快速變化的絮蒿。此時(shí)尊搬,F(xiàn)acebook 的另一個(gè)開(kāi)源項(xiàng)目 GraphQL 應(yīng)運(yùn)而生,成為傳統(tǒng) REST API 的一個(gè)重要替代物土涝。

REST API 暴露多個(gè) REST 路由佛寿,每個(gè)路由讓你可以訪問(wèn)一個(gè)預(yù)定義的數(shù)據(jù)集(比如,/api/post、/api/comments 等等)冀泻。而 GraphQL 只暴露一個(gè)端點(diǎn)常侣,讓客戶端可以通過(guò)這一個(gè)端點(diǎn)查詢它所需的數(shù)據(jù)。

就好像你要買(mǎi)很多東西弹渔,REST API 就是多次來(lái)回肉店胳施、面包店、小賣(mài)部肢专,而 GraphQL 就是給某人一個(gè)購(gòu)物清單舞肆,然后把他送到這三個(gè)地方。

當(dāng)你需要查詢多個(gè)數(shù)據(jù)源的時(shí)候博杖,這種新策略就變得特別有意義了椿胯。就像購(gòu)物清單示例一樣,現(xiàn)在你可以用一個(gè)請(qǐng)求剃根,從所有這些數(shù)據(jù)源獲取數(shù)據(jù)哩盲。

GraphQL 在過(guò)去一年左右的時(shí)間已經(jīng)日益受歡迎,很多項(xiàng)目(比如我們第二周所用的 Gatsby)都在計(jì)劃采用它狈醉。

GraphQL 本身只是一個(gè)協(xié)議廉油,但是目前它的最佳實(shí)現(xiàn)可能是 Apollo 庫(kù)。這個(gè)庫(kù)能與 Redux 很好地配合舔糖。有關(guān) GraphSQL 和 Apollo 的教學(xué)材料依然很少娱两,但是希望 Apollo 文檔 能幫你開(kāi)始。

除了 React 及其生態(tài)圈外

我推薦你從 React 生態(tài)圈開(kāi)始金吗,是因?yàn)樗前踩倪x擇十兢。但是,它絕非是唯一有效的前端技術(shù)棧摇庙。如果你想繼續(xù)探索的話旱物,這里還有兩個(gè)推薦:

Vue

Vue 是一個(gè)相對(duì)比較新的庫(kù),但是它正以創(chuàng)記錄的速度增長(zhǎng)卫袒,而且已經(jīng)被大公司采納宵呛。特別在中國(guó),它正被像百度和阿里巴巴(被認(rèn)為是中國(guó)的谷歌和中國(guó)的亞馬遜)這樣的公司采用夕凝。并且它還是 PHP 框架 Laravel 的官方前端層宝穗。

與 React 相比,它的一些關(guān)鍵賣(mài)點(diǎn)是:

  • 官方維護(hù)的路由和狀態(tài)管理庫(kù)码秉。

  • 關(guān)注于性能逮矛。

  • 較低的學(xué)習(xí)曲線(由于使用的是基于 HTML 的模板)。

  • 較少的樣板代碼转砖。

按照現(xiàn)在的情況须鼎,依然讓 React 比 Vue 占優(yōu)勢(shì)的兩個(gè)主要因素是 React 生態(tài)圈的大小,以及 React Native (稍后會(huì)詳細(xì)介紹)。但是我會(huì)好不吃驚地看到 Vue 會(huì)很快趕上晋控!

Elm

如果說(shuō) Vue 是更平易近人的選項(xiàng)汞窗,那么 Elm 就是更前沿的選項(xiàng)。Elm 不僅是一個(gè)框架赡译,還是一個(gè)編譯到 JavaScript 的全新語(yǔ)言仲吏。

這帶來(lái)不少優(yōu)點(diǎn),比如性能提升捶朵、強(qiáng)制語(yǔ)義版本控制以及無(wú)運(yùn)行時(shí)異常蜘矢。

我本人還沒(méi)有試過(guò) Elm,但是我的朋友們都給我熱烈推薦它综看。并且 Elm 用戶通称犯梗看起來(lái)對(duì)它很滿意(JavaScript 2016的概況調(diào)查中展示 Elm 有 84% 的滿意度)。

下一步

到這里你應(yīng)該已經(jīng)很好地掌握了整個(gè) React 前端技術(shù)棧红碑,并且有希望用它帶來(lái)相當(dāng)?shù)漠a(chǎn)出舞吭。

但是這并不意味著這就完事了!這只是 JavaScript 生態(tài)圈旅程的開(kāi)端析珊。你會(huì)逐漸遇到一些其它主題羡鸥,包括:

我不可能在這里就涵蓋所有這些內(nèi)容奕剃,但是不要灰心衷旅!第一步總是最艱難的,你猜怎么著:你已經(jīng)通過(guò)閱讀本學(xué)習(xí)計(jì)劃纵朋,跨出了第一步柿顶。

現(xiàn)在你理解了如何把生態(tài)圈中不同部分組合在一起,這不過(guò)就是將你下一步想學(xué)習(xí)的內(nèi)容排隊(duì)操软,并且每個(gè)月搞定一個(gè)新技術(shù)嘁锯。

保持聯(lián)系

這個(gè)學(xué)習(xí)計(jì)劃對(duì)你有幫助嗎?你希望我下一次寫(xiě) JavaScript 的哪一塊聂薪?請(qǐng)?jiān)谶@里家乘,或者在 我的推特 上留下評(píng)論,讓我知道藏澳。

如果你想知道下一次我要發(fā)表什么文章仁锯,也可以注冊(cè) the State Of JavaScript 郵件列表

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末笆载,一起剝皮案震驚了整個(gè)濱河市扑馁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凉驻,老刑警劉巖腻要,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異涝登,居然都是意外死亡雄家,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)胀滚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)趟济,“玉大人,你說(shuō)我怎么就攤上這事咽笼∏瓯啵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵剑刑,是天一觀的道長(zhǎng)媳纬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)施掏,這世上最難降的妖魔是什么钮惠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮七芭,結(jié)果婚禮上素挽,老公的妹妹穿的比我還像新娘。我一直安慰自己狸驳,他們只是感情好预明,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著锌历,像睡著了一般贮庞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上究西,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天窗慎,我揣著相機(jī)與錄音,去河邊找鬼卤材。 笑死遮斥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的扇丛。 我是一名探鬼主播术吗,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼帆精!你這毒婦竟也來(lái)了较屿?” 一聲冷哼從身側(cè)響起隧魄,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隘蝎,沒(méi)想到半個(gè)月后购啄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘱么,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年狮含,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曼振。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡几迄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出冰评,到底是詐尸還是另有隱情映胁,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布甲雅,位于F島的核電站屿愚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏务荆。R本人自食惡果不足惜妆距,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望函匕。 院中可真熱鬧娱据,春花似錦、人聲如沸盅惜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)抒寂。三九已至结啼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間屈芜,已是汗流浹背郊愧。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留井佑,地道東北人属铁。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像躬翁,于是被迫代替她去往敵國(guó)和親焦蘑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,743評(píng)論 25 707
  • 英文原文:Skills JavaScript Developers Should Learn in 2016譯者:...
    IT程序獅閱讀 1,859評(píng)論 1 17
  • 生活是什么盒发,沒(méi)有具體的答案例嘱。 什么樣的生活也是因人而異狡逢,理想的生活還是現(xiàn)實(shí)的生活,有著天壤之別拼卵;快樂(lè)的生活或是痛苦...
    小泥鰍媽媽閱讀 231評(píng)論 0 0
  • 談到“野心”這個(gè)詞甚侣,你有什么感覺(jué)呢?是不是突然聯(lián)想到了古代一些謀朝篡位的人间学,他們是遭人唾罵的有狼子野心的人! 其實(shí)...
    詩(shī)蒙閱讀 215評(píng)論 0 0
  • 4月11日 星期二 陰雨(農(nóng)歷三月十五) 我是日記星球的34號(hào)星寶寶印荔,正在參加孫老師的日記星球21天蛻變之旅的...
    譽(yù)仔媽媽閱讀 382評(píng)論 10 7