最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)

2023-07-17 23:26 作者:小八-白不老  | 我要投稿

react高頻面試題

  1. 類組件和函數(shù)式組件的區(qū)別
  • 語法上:函數(shù)式組件返回一個jsx元素,類組件是Es6語法糖class,繼承component這個類
  • 類組件有生命周期,函數(shù)式組件沒有生命周期,借用useEffect模擬生命周期
  • 類組件通過state 和setstate進(jìn)行狀態(tài)管理,函數(shù)組件使用useState
  • 類組件能夠捕獲到最新的值,this可以獲取到最新的props參數(shù)保存在內(nèi)存當(dāng)中,函數(shù)式組件是通過閉包來構(gòu)建的,無法從外面訪問到,也無法在外面修改。

2.react事件綁定的原理

給document加對應(yīng)的函數(shù),創(chuàng)建listenerBank,

觸發(fā)時調(diào)用調(diào)用分發(fā)函數(shù)dispatchEvent,把d當(dāng)前對應(yīng)的所有回調(diào)函數(shù)都加到listenerBank中,在listenerBank根據(jù)key值查找事件回調(diào)并合成到event中

最后進(jìn)行批處理,按照冒泡排序來的

3.setState缺點

異步更新:在調(diào)用setState時不會立即更新,會先進(jìn)行合并再更新,為了提高性能。

重復(fù)渲染:多次調(diào)用setState會重新渲染考慮使用useReducer或其他狀態(tài)管理庫

性能問題:setState會重新渲染整個組件,即時只修改了部分狀態(tài),使用react.memo進(jìn)行優(yōu)化。

setState每次傳入的是一個新的狀態(tài)對象,不是直接修改原來的狀態(tài),大量數(shù)據(jù)時修改時,會有一定的開銷。

由于setState是一步的機制,在修改時依賴state,一般會使用回調(diào)函數(shù)作為參數(shù)更新state值

4.state和props的區(qū)別

props是外部傳過來的數(shù)據(jù),父傳子不可以在組件內(nèi)部修改,要通過父組件修改

state是內(nèi)部的狀態(tài)可以通過setState修改

5.虛擬dom的優(yōu)劣,實現(xiàn)原理

虛擬dom是js對象模擬的dom樹,相當(dāng)于利用diff算法避免不必要的更新,一次性修改需要更改的部分,首次渲染慢,

虛擬dom的組成:type:元素的類型可以是原生的html也可以是自定義的組件,key:虛擬dom唯一的標(biāo)識,ref:訪問原生的Dom節(jié)點

props:屬性

6.diff算法key

tree diff 同層級比較

component diff 通過id同組件對比

element diff 同元素對比

7.react組件通信如何實現(xiàn)

父傳子props

子傳父回調(diào)函數(shù)+props

Context上下文

redux狀態(tài)管理action 改變state

8.react 中的refs的作用

ref獲取到實例和Dom元素






千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)的評論 (共 條)

分享到微博請遵守國家法律
杭锦后旗| 石林| 睢宁县| 修武县| 石渠县| 揭阳市| 财经| 邳州市| 平原县| 侯马市| 榕江县| 集贤县| 海丰县| 沙坪坝区| 旬邑县| 宜君县| 司法| 临泉县| 三原县| 商南县| 房山区| 建始县| 邹城市| 平江县| 北川| 泸溪县| 乐平市| 临漳县| 黑河市| 乐山市| 二手房| 当阳市| 十堰市| 新乡市| 万荣县| 涟水县| 时尚| 丽江市| 陇川县| 日土县| 磐安县|