Redux面試題及答案有哪些-創(chuàng)新互聯(lián)

本文小編為大家詳細(xì)介紹“Redux面試題及答案有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Redux面試題及答案有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

成都創(chuàng)新互聯(lián)制作網(wǎng)站網(wǎng)頁(yè)找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁(yè)設(shè)計(jì),做網(wǎng)站、成都網(wǎng)站設(shè)計(jì),網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為上千家服務(wù),成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷推廣服務(wù)!

1、Redux是什么?

Redux是當(dāng)今市場(chǎng)上最熱門的前端開發(fā)庫(kù)之一。

它是JavaScript應(yīng)用程序的可預(yù)測(cè)狀態(tài)容器,用于整個(gè)應(yīng)用程序的狀態(tài)管理。

使用Redux開發(fā)的應(yīng)用程序易于測(cè)試,可以在不同的環(huán)境中運(yùn)行,表現(xiàn)出一致的行為。

2、Redux遵循的三個(gè)原則是什么?

單個(gè)事實(shí)來源:整個(gè)應(yīng)用程序的狀態(tài)存儲(chǔ)在單個(gè)存儲(chǔ)中的對(duì)象/狀態(tài)樹中。

單狀態(tài)樹使跟蹤隨時(shí)間的變化和調(diào)試或檢查應(yīng)用程序變得更容易。

狀態(tài)是只讀的:更改狀態(tài)的惟一方法是觸發(fā)一個(gè)動(dòng)作。

一個(gè)動(dòng)作是一個(gè)普通的JS對(duì)象,用來描述變化。

就像state是數(shù)據(jù)的最小表示一樣,action是數(shù)據(jù)更改的最小表示。

使用純函數(shù)進(jìn)行更改:為了指定如何通過操作轉(zhuǎn)換。

3、Redux的中間件

中間件提供第三方插件的模式,自定義攔截action -> reducer 的過程。變?yōu)?action -> middlewares -> reducer。這種機(jī)制可以讓我們改變數(shù)據(jù)流,實(shí)現(xiàn)如異步 action ,action 過濾,日志輸出,異常報(bào)告等功能。

常見的中間件:

Redux-logger:提供日志輸出

Redux-thunk:處理異步操作

Redux-promise:處理異步操作,actionCreator的返回值是promise

4、Redux有什么缺點(diǎn)?

一個(gè)組件所需要的數(shù)據(jù),必須由父組件傳過來,而不能像flux中直接從store取。

當(dāng)一個(gè)組件相關(guān)數(shù)據(jù)更新時(shí),即使父組件不需要用到這個(gè)組件,父組件還是會(huì)重新render,可能會(huì)有效率影響,或者需要寫復(fù)雜的shouldComponentUpdate進(jìn)行判斷。

5、你如何理解“單一數(shù)據(jù)源”?

Redux使用“Store”將應(yīng)用程序的整個(gè)狀態(tài)存儲(chǔ)在一個(gè)地方。

因此,所有組件的狀態(tài)都存儲(chǔ)在存儲(chǔ)中,它們從存儲(chǔ)本身接收更新。

單狀態(tài)樹使跟蹤隨時(shí)間的變化和調(diào)試或檢查應(yīng)用程序變得更容易。

6、列出Redux的組件

Redux由以下組件組成:

Action—它是一個(gè)描述所發(fā)生事情的對(duì)象。

它是一個(gè)決定狀態(tài)如何變化的地方。

存儲(chǔ)—整個(gè)應(yīng)用程序的狀態(tài)/對(duì)象樹保存在存儲(chǔ)中。

視圖——簡(jiǎn)單地顯示存儲(chǔ)提供的數(shù)據(jù)。

8、如何在Redux中定義操作?

React中的操作必須具有type屬性,該屬性指示正在執(zhí)行的操作的類型。

它們必須被定義為一個(gè)字符串常量,你還可以向它添加更多的屬性。

在Redux中,操作是使用名為Action creator的函數(shù)創(chuàng)建的。

9、解析Reducer的作用

Reducer是純函數(shù),它指定應(yīng)用程序的狀態(tài)如何隨操作的變化而變化。

reduce通過獲取以前的狀態(tài)和動(dòng)作來工作,然后返回一個(gè)新的狀態(tài)。

它根據(jù)操作的類型確定需要執(zhí)行哪種類型的更新,然后返回新值。

如果不需要做任何工作,它將返回以前的狀態(tài)。

10、Store存儲(chǔ)在Redux中的意義是什么?

存儲(chǔ)是一個(gè)JavaScript對(duì)象,它可以保存應(yīng)用程序的狀態(tài),并提供一些幫助方法來訪問狀態(tài)、分派操作和注冊(cè)偵聽器。

應(yīng)用程序的整個(gè)狀態(tài)/對(duì)象樹保存在單個(gè)存儲(chǔ)中。

因此,Redux非常簡(jiǎn)單和可預(yù)測(cè)。

我們可以將中間件傳遞給存儲(chǔ)來處理數(shù)據(jù),以及保存更改存儲(chǔ)狀態(tài)的各種操作的日志。所有操作都通過reduce返回一個(gè)新的狀態(tài)。

11、Redux的優(yōu)點(diǎn)是什么?

Redux的優(yōu)勢(shì)如下:

結(jié)果的可預(yù)測(cè)性——因?yàn)榭偸怯幸粋€(gè)真實(shí)的來源,即存儲(chǔ),所以對(duì)于如何將當(dāng)前狀態(tài)與操作和應(yīng)用程序的其他部分同步,沒有混淆。

可維護(hù)性——通過可預(yù)測(cè)的結(jié)果和嚴(yán)格的結(jié)構(gòu),代碼變得更容易維護(hù)。

服務(wù)器端呈現(xiàn)—只需將在服務(wù)器上創(chuàng)建的存儲(chǔ)傳遞到客戶端。

這對(duì)于初始渲染非常有用,并提供了更好的用戶體驗(yàn),因?yàn)樗鼉?yōu)化了應(yīng)用程序的性能。

開發(fā)人員工具——從操作到狀態(tài)更改,開發(fā)人員可以實(shí)時(shí)跟蹤應(yīng)用程序中發(fā)生的所有事情。

社區(qū)和生態(tài)系統(tǒng)——Redux背后有一個(gè)巨大的社區(qū),這使得它更容易使用。

一個(gè)龐大的人才社區(qū)為圖書館的改善和開發(fā)各種應(yīng)用作出了貢獻(xiàn)。

易于測(cè)試——Redux的代碼主要是小的、純的和隔離的函數(shù)。

這使得代碼可測(cè)試且獨(dú)立。

組織——Redux精確地定義了代碼的組織方式,這使得代碼在團(tuán)隊(duì)使用時(shí)更加一致和簡(jiǎn)單。

12、Redux有什么好處?

Maintain ability, 由于代碼風(fēng)格要求比較嚴(yán)格,所以可維護(hù)性比較強(qiáng)。

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

Server rendering. 服務(wù)器端創(chuàng)建的store會(huì)轉(zhuǎn)發(fā)到客戶端。

Developer tools. 方便而強(qiáng)大的開發(fā)者工具為調(diào)試和實(shí)時(shí)的開發(fā)提供了便利。

Ease of testing. 小函數(shù),基本上只用來做一件事情,這使得整個(gè)測(cè)試變得非常簡(jiǎn)單。

13、Redux跟mvc和flux有什么區(qū)別?

先說一下mvc,mvc把整個(gè)應(yīng)用分成數(shù)據(jù)層,表示層和邏輯層。當(dāng)數(shù)據(jù)變化比較多的時(shí)候,系統(tǒng)變得會(huì)比較復(fù)雜,調(diào)試就需要更多的經(jīng)驗(yàn)。再說一下flux。Flux跟Redux比較接近。通過event subscription來管理數(shù)據(jù)的變化?;卣{(diào)加載機(jī)制跟Redux比較接近。

讀到這里,這篇“Redux面試題及答案有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

分享名稱:Redux面試題及答案有哪些-創(chuàng)新互聯(lián)
URL地址:http://bm7419.com/article22/dpdgcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、微信小程序、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司