Redux的面試10題


Redux的面試10題


大家好,這一次呢,我們來說一下redux的面試題。

第1題, redux有什麼好處?

Maintain ability, 由於代碼風格要求比較嚴格,所以可維護性比較強。

Organization, 代碼的組織性比較好, 這樣實際上做工作的時候相對容易。

Server rendering. 服務器端創建的store會轉發到客戶端。

Developer tools. 方便而強大的開發者工具為調試和實時的開發提供了便利。

Ease of testing. 小函數,基本上只用來做一件事情,這使得整個測試變得非常簡單。

第2題, Redux跟mvc和flux有什麼區別?

先說一下mvc,mvc把整個應用分成數據層,表示層和邏輯層。當數據變化比較多的時候,系統變得會比較複雜,調試就需要更多的經驗。

再說一下flux。Flux跟redux比較接近。通過event subscription來管理數據的變化。回調加載機制跟redux比較接近。

第3題 說一下功能化編程的概念。

在redux中使用了功能化編程的概念。

在參數中可以傳遞函數。

使用了數據流控制, 遞歸調用, 函數和數組等等。

幫助函數, 如reduce和map filter被大量使用。

允許函數的串聯。

狀態只讀。

代碼執行順序的優先級沒有必要考慮。

第4題,如何改變狀態?

當一個action被執行的時候,我們可以去改變狀態。

假設如下流程:

用戶點擊一個按鈕

一個函數會被調用

一個action會被髮出給處理容器, 這個容器需要用map dispatch to props來註冊這個action。

Reducer會根據action來改變狀態。

狀態的改變會被處理容器注意到, map state to props。

第5題,redux在哪裡使用?

Relax主要用在需要交互性的複雜場景中。可以跟很多框架結合使用, 比如angular, vue, meteor, react。

第6題, 解釋一下典型的react 和 redux數據流。

首先是dispatch一個action。

然後reducer會收到這個action, 根據這個action對狀態進行修改。

狀態修改以後會被處理容器捕捉到。

從而對相關的界面進行更新。

第7題, 什麼是redux的store?

Store存放應用程序的狀態,並且有幫助函數來訪問這些狀態。

Store可以用來聆聽變化和發送action。

Store只有一個。

你可以創建很多sub stores。

第8題, 解釋一下redux裡面的reducers。

數據的狀態是通過reducer函數來改變的。

第9題, 解釋一下redux的工作流特徵。

Reset. 允許狀態的重置。

Revert. 允許回退最近的一次改變。

Sweep. 那些失效的, 錯誤的actions,可以被刪除。

Commit. 把當前狀態提交,作為新的初始狀態。

第10題,解釋一下redux裡面的actions。

Actions代表的是一個對象。有兩部分,一個是action本身,另一個就是它的payload。簡單說就是對哪些數據進行哪些操作。


分享到:


相關文章: