Redux 面試題

1、什麼是Redux?

Redux 用於全局的狀態管理

 

2、爲什麼在React項目中要使用Redux?

因爲React是單向數據流的,數據只能從父組件通過props流向子組件,但如果子組件要想修改父組件的值,就只能通過給綁定函數傳遞參數的形式來修改,一旦項目中數據比較複雜時,這種形式會搞得一團糟,所以需要Redux的協助,幫助其更好的管理項目中複雜的數據問題

3、Redux的三大核心原則?

單一數據源:整個應用的state被存儲在reducer中,並且這個reducer只存在於唯一一個store
state是隻讀的:唯一能改變state的就是action,action是一個用於描述已發生事件的對象,通過store中的dispatch方法來發送action,store.dispatch(action)
使用純函數(reducer)來執行修改:reducer是一個純函數,它接受老的state,action,並且返回一個新的state

4、爲什麼需要redux中間件?

默認情況下,redux只能處理同步數據流。但是實際項目開發中,狀態的更新、獲取、通常是使用異步操作來實現的。

 

5、常用的redux中間件有哪些?

redux-thunk:處理異步操作,主要作用就是可以使action可以變成函數形式,接收兩個參數dispatch、getState
redux-promise: 處理異步操作
redux-logger:打印日誌,主要作用在控制檯打印輸出新老state等信息

6、Redux有什麼缺點?

一個組件所需要的數據,必須由父組件傳過來,而不能像flux中直接從store取。 當一個組件相關數據更新時,即使父組件不需要用到這個組件,父組件還是會重新render,可能會有效率影響,或者需要寫複雜的shouldComponentUpdate進行判斷。

 

7、 Store存儲在Redux中的意義是什麼? 

store 是一個JavaScript對象,它可以保存應用程序的狀態,並提供一些幫助方法來訪問狀態、分派操作和註冊偵聽器。 

應用程序的整個狀態/對象樹保存在單個存儲中。 因此,Redux非常簡單和可預測。我們可以將中間件傳遞給存儲來處理數據,以及保存更改存儲狀態的各種操作的日誌。所有操作都通過reduce返回一個新的狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章