React初步理解(適合新手理解)

timg.jpg

最近參與一個(gè)項(xiàng)目中扔字,運(yùn)用了react.js來(lái)開發(fā)喂急,對(duì)于用慣DOM操作的前端來(lái)說(shuō)格嘁,改變思想來(lái)控制所謂的虛擬DOM確實(shí)有些不適應(yīng)。所以借此機(jī)會(huì)廊移,自己簡(jiǎn)單的做一個(gè)小結(jié)糕簿,如果遇到類似問(wèn)題,可以參考討論一下狡孔。(目前只考慮瀏覽器渲染懂诗,服務(wù)器端之后會(huì)總結(jié)一下)

個(gè)人感覺(jué)到的特色

  • 引入了虛擬DOM的概念,安插在JavaScript邏輯(jsx)和實(shí)際的DOM之間苗膝。這一概念提高了Web性能殃恒。在UI渲染過(guò)程中,React通過(guò)在虛擬DOM中的微操作來(lái)實(shí)對(duì)現(xiàn)實(shí)際DOM的局部更新辱揭。
  • react其實(shí)只有所謂的view層离唐,所以庫(kù)很輕量。但是這樣也意味著自己變異代碼的更多可能性问窃。但是數(shù)據(jù)流我還是使用了官方推薦的redux做處理亥鬓。
  • 更方便的模塊化。配合es6的class寫法域庇,以及node的模塊化寫法嵌戈,能把一個(gè)一個(gè)區(qū)塊變成一個(gè)一個(gè)可以復(fù)用的組件,這樣也要求我們?cè)跁鴮戇壿嬛敖咸辏仨毟鶕?jù)項(xiàng)目需求,業(yè)務(wù)邏輯技健,提前預(yù)留好后期可能需要的功能写穴。
  • 強(qiáng)大的生命周期,這樣在報(bào)錯(cuò)后更容易找到問(wèn)題所在雌贱。
  • 學(xué)習(xí)成本也不是很高啊送。

適用場(chǎng)景

由于react的誕生就是feacebook為了解決前端多交互的情況下出現(xiàn)的。所以我也感覺(jué)react適合多用戶交互欣孤,多數(shù)據(jù)流變更的項(xiàng)目中馋没。

react必須了解的地方

1.生命周期

生命周期總體劃分為初始化階段(Mounting),運(yùn)行中階段(Updating)降传,銷毀階段(Unmounting)

Mounting
getDefaultProps:組件見props共享引用篷朵。
getInitialState:初始化每個(gè)組件自己特有的狀態(tài)。(就是初始state)
conponentWillMount:render之前和初始之間修改狀態(tài)的過(guò)程。
render:將虛擬DOM渲染到瀏覽器上声旺,只能訪問(wèn)this.props, this.state(es6 class寫法中笔链,this.后加 function 還可以調(diào)用類內(nèi)方法。)但是這個(gè)狀態(tài)內(nèi)最好不要修改狀態(tài)腮猖,否則容易陷入死循環(huán)鉴扫。
conponentDidMount:成功render并渲染真實(shí)DOM后觸發(fā),可以修改DOM元素澈缺。

Updating
componentWillReceiveProps:當(dāng)組件修改屬性觸發(fā)坪创,這個(gè)狀態(tài)下可以修改屬性和狀態(tài)。(componentWillReceiveProps(nextProps){/修改狀態(tài)邏輯/})
shouldComponentUpdate:只有true和false選擇姐赡,false會(huì)阻止render刷新莱预。
render:同上
componentDidUpdate:可以修改DOM

Unmounting
componentWillUn:在刪除組件之前進(jìn)行相關(guān)清理操作,比如計(jì)時(shí)器和監(jiān)聽器等雏吭。

2.props和state

簡(jiǎn)單的將锁施,prop就是組件之間傳遞數(shù)據(jù)所用的傳遞參數(shù),而state是本組件改變數(shù)據(jù)用的方式杖们。而且react頁(yè)面刷新機(jī)制就是比較前后數(shù)據(jù)發(fā)生的變化悉抵,其實(shí)就是比較state是否發(fā)生改變。所以想讓頁(yè)面根據(jù)數(shù)據(jù)發(fā)生改變摘完,就要理解state和prop姥饰。

3.控制真實(shí)DOM節(jié)點(diǎn)

當(dāng)然,如果想要控制DOM元素怎么樣孝治?react也提供了一種方式--ref屬性列粪。
例子:
DOM中寫法

<input type="text" ref="myInput" />

js應(yīng)用

this.refs.myInput.focus();

先簡(jiǎn)單寫到這里,之后再慢慢補(bǔ)充谈飒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末岂座,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子杭措,更是在濱河造成了極大的恐慌费什,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件手素,死亡現(xiàn)場(chǎng)離奇詭異鸳址,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)泉懦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門稿黍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人崩哩,你說(shuō)我怎么就攤上這事巡球⊙糟澹” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵辕漂,是天一觀的道長(zhǎng)呢灶。 經(jīng)常有香客問(wèn)我,道長(zhǎng)钉嘹,這世上最難降的妖魔是什么鸯乃? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮跋涣,結(jié)果婚禮上缨睡,老公的妹妹穿的比我還像新娘。我一直安慰自己陈辱,他們只是感情好奖年,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沛贪,像睡著了一般陋守。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上利赋,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天水评,我揣著相機(jī)與錄音,去河邊找鬼媚送。 笑死中燥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的塘偎。 我是一名探鬼主播疗涉,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吟秩!你這毒婦竟也來(lái)了咱扣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涵防,失蹤者是張志新(化名)和其女友劉穎闹伪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體武学,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祭往,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年伦意,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了火窒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡驮肉,死狀恐怖熏矿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤票编,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布褪储,位于F島的核電站,受9級(jí)特大地震影響慧域,放射性物質(zhì)發(fā)生泄漏鲤竹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一昔榴、第九天 我趴在偏房一處隱蔽的房頂上張望辛藻。 院中可真熱鬧,春花似錦互订、人聲如沸吱肌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)氮墨。三九已至,卻和暖如春吐葵,著一層夾襖步出監(jiān)牢的瞬間规揪,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工折联, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粒褒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓诚镰,卻偏偏與公主長(zhǎng)得像奕坟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子清笨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南月杉,這只是我在學(xué)習(xí)過(guò)程中的一些閱讀筆記,個(gè)人覺(jué)得該教程講解深入淺出抠艾,比目前大...
    leonaxiong閱讀 2,834評(píng)論 1 18
  • 本筆記基于React官方文檔苛萎,當(dāng)前React版本號(hào)為15.4.0。 1. 安裝 1.1 嘗試 開始之前可以先去co...
    Awey閱讀 7,705評(píng)論 14 128
  • 深入JSX date:20170412筆記原文其實(shí)JSX是React.createElement(componen...
    gaoer1938閱讀 8,063評(píng)論 2 35
  • - Ro检号!別跑腌歉!快把我鞋吐了!- 不要齐苛,我還沒(méi)啃夠呢……(咯吱咯吱咯咯吱吱…)- 那你別啃我的翘盖,去啃N的!- 哦好...
    天使也掉毛兒閱讀 300評(píng)論 0 2
  • HTTP 中間件 HTTP中間件,在現(xiàn)實(shí)項(xiàng)目開發(fā)中簡(jiǎn)化了很多工作,Go開發(fā)社區(qū)還沒(méi)有很大的興趣吸收成熟的web開發(fā)...
    小Q逛逛閱讀 3,858評(píng)論 0 5