react 面試基本要點(diǎn)以及考點(diǎn)

setState什么時(shí)候是同步的碍遍,什么時(shí)候是異步的

setState的原理:
在React中捻勉,如果是由React引發(fā)的事件處理(比如通過onClick引發(fā)的事件處理)豁辉,調(diào)用setState不會同步更新this.state庶橱,除此之外的setState調(diào)用會同步執(zhí)行this.state夷恍。所謂“除此之外”,指的是繞過React通過addEventListener直接添加的事件處理函數(shù)棉安,還有通過setTimeout/setInterval產(chǎn)生的異步調(diào)用底扳。

原因:在React的setState函數(shù)實(shí)現(xiàn)中,會根據(jù)一個(gè)變量isBatchingUpdates判斷是直接更新this.state還是放到隊(duì)列中回頭再說贡耽,而isBatchingUpdates默認(rèn)是false衷模,也就表示setState會同步更新this.state,但是菇爪,有一個(gè)函數(shù)batchedUpdates算芯,這個(gè)函數(shù)會把isBatchingUpdates修改為true柒昏,而當(dāng)React在調(diào)用事件處理函數(shù)之前就會調(diào)用這個(gè)batchedUpdates凳宙,造成的后果,就是由React控制的事件處理過程setState不會同步更新this.state职祷。

異步處理的時(shí)候

image.png

https://reactjs.org/docs/faq-state.html#when-is-setstate-asynchronous

react 事件機(jī)制

  • 當(dāng)用戶在為onClick添加函數(shù)時(shí)氏涩,React并沒有將Click時(shí)間綁定在DOM上面。
  • 而是在document處監(jiān)聽所有支持的事件有梆,當(dāng)事件發(fā)生并冒泡至document處時(shí)是尖,React將事件內(nèi)容封裝交給中間層SyntheticEvent(負(fù)責(zé)所有事件合成)
  • 所以當(dāng)事件觸發(fā)的時(shí)候,對使用統(tǒng)一的分發(fā)函數(shù)dispatchEvent將指定函數(shù)執(zhí)行泥耀。

react 與 vue的對比
react
1 函數(shù)式思想饺汹,all in js ,jsx語法,js操控css
2 單項(xiàng)數(shù)據(jù)流
3 setState重新渲染
4 每當(dāng)應(yīng)用的狀態(tài)被改變時(shí)痰催,全部子組件都會重新渲染兜辞。當(dāng)然,這可以通過shouldComponentUpdate這個(gè)生命周期方法來進(jìn)行控制夸溶,如果為true繼續(xù)渲染逸吵、false不渲染,但Vue將此視為默認(rèn)的優(yōu)化缝裁。

vue
1 響應(yīng)式思想扫皱,也就是基于數(shù)據(jù)可變的。把html、js韩脑、css氢妈、組合到一起,也可以通過標(biāo)簽引擎組合到一個(gè)頁面中
2 雙向綁定段多,每一個(gè)屬性都需要建立watch監(jiān)聽(頁面不用允懂,涉及到組件更新的話需要)
3 Vue宣稱可以更快地計(jì)算出Virtual DOM的差異,這是由于它在渲染過程中衩匣,會跟蹤每一個(gè)組件的依賴關(guān)系蕾总,不需要重新渲染整個(gè)組件樹

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市琅捏,隨后出現(xiàn)的幾起案子生百,更是在濱河造成了極大的恐慌,老刑警劉巖柄延,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚀浆,死亡現(xiàn)場離奇詭異,居然都是意外死亡搜吧,警方通過查閱死者的電腦和手機(jī)市俊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滤奈,“玉大人摆昧,你說我怎么就攤上這事⊙殉蹋” “怎么了绅你?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長昭躺。 經(jīng)常有香客問我忌锯,道長,這世上最難降的妖魔是什么领炫? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任偶垮,我火速辦了婚禮,結(jié)果婚禮上帝洪,老公的妹妹穿的比我還像新娘似舵。我一直安慰自己,他們只是感情好碟狞,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布啄枕。 她就那樣靜靜地躺著,像睡著了一般族沃。 火紅的嫁衣襯著肌膚如雪频祝。 梳的紋絲不亂的頭發(fā)上泌参,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機(jī)與錄音常空,去河邊找鬼沽一。 笑死,一個(gè)胖子當(dāng)著我的面吹牛漓糙,可吹牛的內(nèi)容都是我干的铣缠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼昆禽,長吁一口氣:“原來是場噩夢啊……” “哼蝗蛙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起醉鳖,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤捡硅,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后盗棵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壮韭,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年纹因,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喷屋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞭恰,死狀恐怖屯曹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寄疏,我是刑警寧澤是牢,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布僵井,位于F島的核電站陕截,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏批什。R本人自食惡果不足惜农曲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驻债。 院中可真熱鬧乳规,春花似錦、人聲如沸合呐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淌实。三九已至冻辩,卻和暖如春猖腕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恨闪。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工倘感, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咙咽。 一個(gè)月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓老玛,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钧敞。 傳聞我的和親對象是個(gè)殘疾皇子蜡豹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

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

  • 作為一個(gè)合格的開發(fā)者,不要只滿足于編寫了可以運(yùn)行的代碼溉苛。而要了解代碼背后的工作原理余素;不要只滿足于自己的程序...
    六個(gè)周閱讀 8,422評論 1 33
  • 前言 組件中的state具體是什么?怎么更改state的數(shù)據(jù)? setState函數(shù)分別接收對象以及函數(shù)有什么區(qū)別...
    itclanCoder閱讀 869評論 0 0
  • 原教程內(nèi)容詳見精益 React 學(xué)習(xí)指南,這只是我在學(xué)習(xí)過程中的一些閱讀筆記炊昆,個(gè)人覺得該教程講解深入淺出桨吊,比目前大...
    leonaxiong閱讀 2,810評論 1 18
  • 40、React 什么是React凤巨?React 是一個(gè)用于構(gòu)建用戶界面的框架(采用的是MVC模式):集中處理VIE...
    萌妹撒閱讀 1,005評論 0 1
  • 最近看了一本關(guān)于學(xué)習(xí)方法論的書视乐,強(qiáng)調(diào)了記筆記和堅(jiān)持的重要性。這幾天也剛好在學(xué)習(xí)React敢茁,所以我打算每天堅(jiān)持一篇R...
    gaoer1938閱讀 1,670評論 0 5