來(lái)自一位react新手的react入門(mén)須知

前言:自己剛剛總結(jié)的關(guān)于react的知識(shí)點(diǎn),比較簡(jiǎn)單,大家可以粗略看看。

一:關(guān)于react的一些知識(shí)點(diǎn)

1,Jsx

所有的html,css都可以寫(xiě)在js中,這就是jsx的用法。

2,生命周期**
  • 渲染組件的時(shí)候幾個(gè)過(guò)程
  1. getDefaultProps

  2. getInitialState

  3. componentWillMount // 組件將要被加載之前的操作。如請(qǐng)求數(shù)據(jù)等

  4. render

  5. componentDidMount(一般在這個(gè)階段各種api的請(qǐng)求等,與redux配合的時(shí)候,可以在redux的action獲取接口數(shù)據(jù)。)

  • 組件存在時(shí)候
  1. componentWillReceiveProps

    // 常用的用法是父組件的props改變了,需要在子組件中通過(guò)這個(gè)生命周期獲得最新的props,然后setState組建的state

  2. shouldComponentUpdate // 組件是否要重新渲染,默認(rèn)為真。

  3. componentWillUpdate

  4. render

  5. componentDidUpdate

3,數(shù)據(jù)的類(lèi)型驗(yàn)證:PropTypes

用于驗(yàn)證數(shù)據(jù)的類(lèi)型是否是滿足你的需要,不過(guò)我在現(xiàn)有的項(xiàng)目中沒(méi)有特意的指定數(shù)據(jù)的propTyoe,因?yàn)檫@些都是前后端約定好的。

此用法如下圖 :

image

這個(gè)如同vue組件里面的props中的type:Array這個(gè)一樣

image

4,路由(react-router)

這個(gè)與vue-router差不多,大家可以看文檔。

react-router的中文官網(wǎng) : 中文官網(wǎng)

5,父子之間的傳遞屬性
  • 沒(méi)有使用redux,最簡(jiǎn)單的(props與state)

  • 使用redux(狀態(tài)管理): redux中文官網(wǎng) (差不多70多行代碼)

    • mobx(相對(duì)于redux較為簡(jiǎn)單) : mobx;

    • 阿里新出的一個(gè)框架Mirror : Mirror;

6,react中獲取真實(shí)的dom節(jié)點(diǎn) 【ref】

因?yàn)閞eact與vue一樣,都是使用vitural-dom,沒(méi)有處理dom節(jié)點(diǎn),從而大大提高了頁(yè)面的渲染效率。

當(dāng)你想要獲取真實(shí)的dom節(jié)點(diǎn)的時(shí)候,可以使用ref,具體的使用,可以看阮一峰的react入門(mén),我下面的todolist的demo里面也會(huì)涉及到。

不過(guò)在你使用無(wú)狀態(tài)組件申明組件的時(shí)候,ref在這個(gè)組件中是不能使用的。

7,webpack的使用,既grunt,gulp之后的構(gòu)建工具

可以通過(guò)webpack安裝各種依賴,我使用的最爽的一個(gè)就是react-hot-loader,就是熱更新,非常好用。不過(guò)熱更新其他的工具,比如browser-sync,下面是一些文檔。

8,react的腳手架工具create-react-app

如vue的vue-cli腳手架,create-react-app](https://github.com/facebookincubator/create-react-app),使用以上方法的話,與vue-cli腳手架工具類(lèi)似

二、學(xué)習(xí)react(我當(dāng)時(shí)的學(xué)習(xí)路線)

  1. 第一階段:

    學(xué)習(xí)之前,花費(fèi)了很多時(shí)間去配置webpack,react-router,react-hot-loader,沒(méi)有使用腳手架。

  2. 第二階段:

    學(xué)習(xí)基礎(chǔ)的react語(yǔ)法,如下面demo中的todolist,但是不涉及到redux(統(tǒng)一狀態(tài)管理),這個(gè)階段學(xué)的特別快。主要是我上面列的一些知識(shí)點(diǎn)(jsx,組件之前數(shù)據(jù)傳遞,react-router,PropTypes),最主要的就是一個(gè)模塊化的概念,個(gè)人感覺(jué)學(xué)過(guò)vue的,理解模塊化,上手應(yīng)該是蠻快的。

  3. 第三階段:

    學(xué)習(xí)redux,當(dāng)時(shí)是因?yàn)榻M建太多,而數(shù)據(jù)需要一層一層的傳遞進(jìn)去,比較麻煩,就學(xué)了redux,講狀態(tài)統(tǒng)一管路,在用到的組件直接使用redux調(diào)用相應(yīng)的狀態(tài)就好了?!具@個(gè)學(xué)習(xí)的成本蠻高的,主要是理解,理解了之后使用起來(lái)很簡(jiǎn)單?!?/p>

    想快速上手的話,可以學(xué)習(xí)mobx,這個(gè)相對(duì)于redux更加簡(jiǎn)單,但對(duì)大型系統(tǒng)的話,redux更好,如果你想快速使用redux做項(xiàng)目開(kāi)發(fā),可以建議使用相關(guān)的框架,我上面也提到了,阿里的ant-design-pro,具體的教程官方都有,這里需要說(shuō)的一點(diǎn)是,這個(gè)框架是配合阿里的redux框架dva使用的。大家有興趣可以看一下。

我自己的一些總結(jié),單單學(xué)react是不難的,難的是要和一些工具混合來(lái)用,往往這個(gè)過(guò)程的成本最高。比如使用webpack構(gòu)建,redux管理狀態(tài),redux-thunk或者redux-saga來(lái)處理異步action。

還有一個(gè)很大的趨勢(shì)就是前端變化很快,拿react-router來(lái)說(shuō),你做了一個(gè)項(xiàng)目,react-router@2.0.0是能完美跑起來(lái)的,但是換成了當(dāng)換成了react-router@3.0.0,基本上就跑不起來(lái)了,更何況現(xiàn)在的react-router已經(jīng)出到4.0,

相應(yīng)的webpack也是這樣,當(dāng)時(shí)一些開(kāi)發(fā)者基于webpack1.0開(kāi)發(fā)的,當(dāng)webpack升到2.0的時(shí)候,webpack.config,js里面的文件要重新配置了?,F(xiàn)在webpack已經(jīng)更新到了3.0。

三、關(guān)于react的網(wǎng)站

1,各個(gè)官網(wǎng):英語(yǔ)好的話,真的推薦去官網(wǎng)看。

2, 阮一峰的文檔:react的入門(mén),webpack的入門(mén),react-router

3,react的一些框架和一些輪子:

3.1 : 有贊團(tuán)隊(duì) : zent;(也是一兩個(gè)月前剛開(kāi)源的);

3.2 : 螞蟻金服:Ant-dedign , Ant-design-mobile,ant-design-pro;

3.3 : react-weui :react-weui

3.4 : react-awesome : react-awesome

4,一個(gè)漸進(jìn)的學(xué)react的demo。

里面基本上涉及到了,react入門(mén)的所有涵蓋的知識(shí),他都是自己搭的,沒(méi)有使用腳手架工具。里面也涵蓋了webpack的一些配置,對(duì)于新手學(xué)習(xí)蠻好的。

?

四、小案列(自己前段時(shí)間寫(xiě)的一些小demo,比較low,大家可以看看)

1,jquery、vue、react的todolist,最簡(jiǎn)單的

2,基于ant-dedign的一個(gè)react簡(jiǎn)單的demo

3,基于react寫(xiě)的一個(gè)簡(jiǎn)易大眾點(diǎn)評(píng)的demo,里面用到了redux,mock,fetch,es6

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 目錄 UI組件 開(kāi)發(fā)框架 實(shí)用庫(kù) 服務(wù)端 輔助工具 應(yīng)用實(shí)例 Demo示例 UI組件 element★13489 ...
    余生社會(huì)閱讀 20,513評(píng)論 7 233
  • 轉(zhuǎn)載 :OpenDiggawesome-github-vue 是由OpenDigg整理并維護(hù)的Vue相關(guān)開(kāi)源項(xiàng)目庫(kù)...
    果汁密碼閱讀 23,419評(píng)論 8 124
  • 說(shuō)起雞蛋,我們都不陌生。各種各樣的吃法都有,我身邊常有的吃法:紫菜雞蛋湯、番茄雞蛋湯、甜白酒雞蛋、青椒炒蛋、西紅柿...
    熠歆閱讀 1,923評(píng)論 13 15
  • 愛(ài).無(wú)界 文/蘭蘭 無(wú)須語(yǔ)言 風(fēng)雨中相伴 因?yàn)橛心?不會(huì)孤獨(dú) 心里住著 溫暖 總想靠著你 感受慈祥般的母愛(ài) 總想跟...
    蘭如純閱讀 205評(píng)論 0 0
  • IT人很苦逼,這或許是每個(gè)人從事IT人的心聲。在學(xué)習(xí)階段,就需要掌握大量全新的課程,學(xué)習(xí)幾乎占滿你大學(xué)所有的時(shí)間,...
    門(mén)前池塘閱讀 576評(píng)論 0 0

友情鏈接更多精彩內(nèi)容