
從一個(gè) React 菜鳥,到現(xiàn)在能夠非常熟練的使用 React Native 開發(fā)多款跨端應(yīng)用,我和 React 相愛相殺已經(jīng)超過六年了。
在這六年多的時(shí)間里,React 幫助我完成了非常多的項(xiàng)目,web 端的,app 端的,桌面端的。簡單到一個(gè)普通頁面的展示,復(fù)雜到一個(gè)獨(dú)立的大型股票交易系統(tǒng)??梢哉f,React 伴隨了我大半個(gè)職業(yè)生涯與成長歷程。
因?yàn)閷?React 的熱愛,我的職業(yè)生涯過得非常順利,在這短短的幾年里,React 成為國內(nèi)各大前端團(tuán)隊(duì)的寵兒,熟練地掌握 React 讓我輕松得到了許多好的工作機(jī)會,很顯然,在未來很長一段時(shí)間里,React 仍然將會是前端開發(fā)的主流選擇。對于每一個(gè)前端開發(fā)者來說,熟練掌握 React 并將其運(yùn)用于項(xiàng)目實(shí)踐,是一項(xiàng)必須掌握的核心技能。
1
React 開發(fā)思維引領(lǐng)時(shí)代
至少未來五年內(nèi),前端必定依然是組件化開發(fā)的五年。組件化思維是前端高效開發(fā)的核心所在,也是目前各大前端框架都在推崇的開發(fā)思維。
在 React 官方文檔中,專門以一章《React 哲學(xué)》向大家描述組件化思維的使用方式。這篇被許多人忽略的文章是 React 官方文檔最精華的部分。
除了組件化開發(fā)思維之外,虛擬 DOM,JSX,高階組件,render props 等等特性,都是 React 率先提出。
2018 年底,React Hooks 的強(qiáng)勢推出,讓組件化開發(fā)更加接近所見即所得,開發(fā)效率有了質(zhì)的飛越,再一次確定了 React 在前端框架中的領(lǐng)導(dǎo)地位。
可以感受到,雖然 React 已經(jīng)推出多年,但依然充滿活力,React 的未來依然值得期待。
2
React 具備完善的全套解決方案
從 Kotlin 和 Flutter 的推廣路徑來看,所有的前端方案,都在試圖利用一套技術(shù)方案解決所有問題。
跨端方案對于降低團(tuán)隊(duì)人力成本有著非常大的吸引力。無論是從企業(yè)用人成本的角度出發(fā),還是從團(tuán)隊(duì)技術(shù)選型,項(xiàng)目維護(hù)成本的角度考慮,多端統(tǒng)一一套技術(shù)方案,一定是未來的趨勢,這就是行業(yè)里常常被提及的大前端!
而 React,在大前端的道路上,已經(jīng)走了 7 年。
無論是桌面端開發(fā),還是 Android/iOS 開發(fā),React 都有對應(yīng)的成熟解決方案。
在國內(nèi),小程序是大前端不可忽視的重要一環(huán)。2019 年初,Taro 強(qiáng)勢推出,彌補(bǔ)了 React 生態(tài)的最后一環(huán),React 直接成為了跨端解決方案中,最成熟,最完善,也最值得優(yōu)先考慮的技術(shù)體系。
3
React 具有超高的開發(fā)效率
Flutter 借助更為統(tǒng)一的 UI 組件,更高效的渲染速度進(jìn)入跨端方案的競爭中來,剛出來時(shí)的火熱程度,大有一統(tǒng)天下的氣勢。
卻被 React Hooks 強(qiáng)勢狙擊。
組件化思維 與 React Hooks 完美結(jié)合,讓 React 在開發(fā)效率上大幅度提高,這成為了所有不想加班程序員的首選。因此前端團(tuán)隊(duì)在做技術(shù)選型時(shí),就不可能忽視 React Hooks 這一特性的存在。React Native 也再次擁有了無法被替代的理由。
4
市場緊缺 React 高階人才
一個(gè)成熟的項(xiàng)目產(chǎn)品需要多個(gè)客戶端的支持。我們熟知的有 Android、iOS、電腦桌面、Web 網(wǎng)頁,以及最近幾年非?;馃岬男〕绦颉?/p>
不同的客戶端的底層技術(shù)不一樣,對于公司來說,如果每一個(gè)客戶端都需要一個(gè)技術(shù)團(tuán)隊(duì)來支持,那么團(tuán)隊(duì)的用人成本就太高了。因此跨端方案一直是所有客戶端解決方案追求的目標(biāo)。
而 React 在跨端方案的成熟,讓 React 成為了許多團(tuán)隊(duì)的必選技術(shù)棧。這也導(dǎo)致了市場對 React 高端人才的需求大大增加。
值得大家高興的是,在如今的人才市場里,React 高級人才處于并將長期處于一個(gè)供不應(yīng)求的緊急狀態(tài)。我有維護(hù)一個(gè)微信群,群里有許多阿里、騰訊、字節(jié)跳動等大公司的朋友,每隔一段時(shí)間,他們都會在群里詢問是否有會 React 的朋友想換工作。包括我自己出去找工作,也能非常明顯的感受到,熟練掌握 React,能夠更輕松的獲得大量工作機(jī)會。
作為前端開發(fā)者,想要學(xué)習(xí)一門前端框架傍身,React 是最優(yōu)選擇,沒有之一。
5
正確看待 React 的學(xué)習(xí)難度
想要學(xué)習(xí) React 的朋友很多,但是自學(xué) React 并非那么容易,特別是對于新人而言。那么和其它前端框架相比,為什么 React 更難學(xué)一點(diǎn)呢?
React 的本質(zhì)在于傳達(dá)一種開發(fā)思維,而初學(xué)者很難真正的領(lǐng)會到這一點(diǎn),幾乎所有人都沒有覺得應(yīng)該將 React 當(dāng)成一種開發(fā)思維去學(xué)習(xí),因此學(xué)習(xí)的效果不理想就是自然而然的事情了;
React 的開發(fā)模式經(jīng)歷過好幾個(gè)版本的更新與迭代,每一次更新,開發(fā)方式都是一次巨大的調(diào)整與升級,因此后來者會比較不適應(yīng),找到的資料與自己想要學(xué)習(xí)的內(nèi)容可能匹配不上;
因?yàn)?React 意在傳達(dá)一種開發(fā)思維,把許多解決方案都交給了社區(qū),因此官方文檔中的內(nèi)容并沒有包含這些解決方案。在官方文檔中,知識并不完整,其他重要內(nèi)容諸如 Redux,React Router 等都需要額外學(xué)習(xí),有的新人在剛開始接觸時(shí),甚至不知道有這些內(nèi)容。也正是因?yàn)檫@些內(nèi)容的缺失,新人朋友無法感受到一個(gè)完整的 React 項(xiàng)目應(yīng)該長成什么樣子,于是內(nèi)心就滋生許多疑問與顧慮;
一個(gè)完整的 React 項(xiàng)目無法脫離 webpack 而獨(dú)立存在,因此學(xué)習(xí) React 開發(fā),webpack 的學(xué)習(xí)是必不可少的一環(huán)??墒侨绾螌W(xué)習(xí) webpack 又是另外一個(gè)巨大的挑戰(zhàn)。webpack 是什么?有什么用?它在項(xiàng)目構(gòu)建的過程中扮演了什么角色?一系列疑問令人感到頭疼;
最近兩年,TypeScript 成為了大中型前端項(xiàng)目的剛需。許多團(tuán)隊(duì)對于 TypeScript 的要求,成為了 掌握 React 的又一大難點(diǎn)。這讓許多人犯了難。TypeScript 的學(xué)習(xí)并非一蹴而就,需要花費(fèi)額外的時(shí)間與精力認(rèn)真掌握。于是,在這種情況之下,React 的運(yùn)用難度再一次增加;
而針對這些學(xué)習(xí)中的痛點(diǎn),本書都會一一解決。讓 React 的學(xué)習(xí)變得非常輕松。
6
學(xué)前技術(shù)儲備
能夠帶領(lǐng)你進(jìn)步的,不是比你強(qiáng)大很多的大牛,而是剛好比你走得快那么一步的腳印。你剛好需要,而我的文章里剛好有,這就是最大的學(xué)習(xí)效率。這也是為什么有的人回過頭去閱讀以前已經(jīng)讀過的書,反而覺得收益更大的原因。
那么也就意味著,想要保持最高的學(xué)習(xí)效率,在系統(tǒng)學(xué)習(xí) React 之前,你需要有自己的積累與沉淀。
- 扎實(shí)的 HTML/CSS 基礎(chǔ)
- 扎實(shí)的 JavaScript 基礎(chǔ),閱讀過我的《JavaScript 基礎(chǔ)進(jìn)階》最好
推薦閱讀:關(guān)于如何學(xué)好 JavaScript,我寫了一本書