天天看點

前端開發經典面試題及答案——React篇

作者:卓目鳥學苑

一、虛拟DOM

虛拟DOM是真實DOM在記憶體中的表示,ul的表示形式儲存在記憶體中,并且與實際的DOM同步,這是一個發生在渲染函數被調用和元素在螢幕上顯示的步驟,整個過程被稱為調和。

二、類元件和函數元件之間的差別

前端開發經典面試題及答案——React篇

三、react中refs

refs是在render中建立DOM節點或者React元素的方法。

在典型的資料流中,props是父子元件互動的唯一方式,想要修改子元件,需用新的props重新渲染。

四、state和props差別

前端開發經典面試題及答案——React篇

五、jsx

第一釋出react時,還引入了一種新的js方言jsx。

将原始HTML模闆嵌入到JS代碼中。JSX代碼本身不能被浏覽器讀取,必須使用Babel和webpack等工具将其轉換為傳統的JS。

六、為什麼不直接更新state

如果試圖直接更新state,就不會重新渲染元件

需要使用setState()方法更新state,它對state對象進行更新,當state改變時,元件通過重新渲染來響應。

七、React元件生命周期的不同階段

前端開發經典面試題及答案——React篇

八、類方法綁定到類執行個體的原因

在js中,this值會根據目前上下文的變化,在React類元件方法中,開發人員使用this引用目前執行個體,是以有必要将這些方法綁定到執行個體。

九、描述Flux與MVC

MVC模式:Model→分離資料 View→UI Controller→邏輯

MVC架構常見問題:

①資料流不夠清晰:跨視圖的級聯更新會導緻混亂的事件網絡,難于調試;

②缺乏資料完整性:模型資料會發生突變,進而UI中會産生不可預測的結果。

而Flux模式的複雜使用者界面不再遭受級聯更新,任何給定React元件都能根據store提供的資料重建其狀态。

十、受控元件和非受控元件差別

前端開發經典面試題及答案——React篇

十一、構造函數和getInitialState的差別

ES6和ES5本身的差別。

使用ES6類時,應該在構造函數中初始化state,并在使用React.createClass時定義getInitialState方法。

十二、避免元件的重新渲染

①React.memo( ):可防止不必要地重新渲染函數元件

②PureComponent:可防止不必要地重新渲染類元件

十二、純函數

不依賴并且不會在其作用域之外修改變量狀态的函數。本質上,純函數始終在給定相同參數的情況下傳回相同結果。

十三、區分RealDOM和VirtualDOM

前端開發經典面試題及答案——React篇

十四、React特點、優點、限制

前端開發經典面試題及答案——React篇

十五、浏覽器無法讀取JSX處理方法

浏覽器隻能處理JS對象,而不能讀取正常JS對象中的JSX。為了浏覽器能夠讀取JSX,先要用像Babel轉換器将JSX檔案轉換為JS對象,再傳給浏覽器。

十六、React與Angular差別

前端開發經典面試題及答案——React篇

十七、如何了解“React中,一切皆元件”

元件是React應用UI的建構塊。這些元件将整個UI分成小的、獨立的、可複用的部分。每個元件彼此獨立又不影響UI的其餘部分。

十八、React中的箭頭函數如何使用

箭頭函數(=>)是用于編寫函數表達式的簡短文法。這些函數允許正确綁定元件的上下文,因為ES6預設不能使用自動綁定。使用高階函數時,箭頭函數非常有用。

十九、區分有狀态和無狀态元件

前端開發經典面試題及答案——React篇

二十、React中的事件

React中的事件,是對滑鼠懸停、滑鼠單擊、按鍵等特定操作的觸發反應。處理事件類似于處理DOM元素中的事件。但有文法差異,如:①事件命名需要駝峰法;②事件作為函數。

二十一、React中key的重要性

key用于識别唯一的VirtualDOM元素及其驅動UI的相應資料。

二十二、Redux

Redux是當今最熱門的前端開發庫之一。

Redux是JavaScript程式的可預測狀态容器,用于整個應用的狀态管理。使用Redux開發的應用易于測試,可以在不同環境中運作,并顯示一緻的行為。

前端開發經典面試題及答案——React篇

二十三、資料如何通過 Redux 流動

前端開發經典面試題及答案——React篇

二十四、Reducer的作用

Reducers是純函數,它規定應用程式的狀态怎樣因響應ACTION而改變。Reducers通過接受先前的狀态和action來工作,後傳回新的狀态。若無需完成任務,則傳回原狀态。

二十五、React路由

React路由是建構在React之上的強大路由庫,負責維護标準化結構和行為,并用于開發單頁Web應用。

前端開發經典面試題及答案——React篇

二十六、常用的hooks

前端開發經典面試題及答案——React篇

二十七、react中ref的使用方式

1、直接寫一個字元串,不過隻适用于類元件;

2、createRef和useRef來定義ref變量,ref.current擷取資料;

3、使用箭頭函數,先定義一個變量,箭頭函數的形參就是目前對象。