久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > redux-thunk的理解

redux-thunk的理解

來源:千鋒教育
發(fā)布人:syq
時間: 2022-08-11 14:11:00 1660198260

  首先,為何我們要學(xué)習(xí)redux-thunk呢?因為最近做redux項目的時候,發(fā)現(xiàn)內(nèi)部需要做一些異步操作。而在redux的工作流中,reducer是純函數(shù),內(nèi)部不能進行異步操作。那么我們只能將異步的操作放入在actionCreator中進行,但是如果直接這樣寫會報錯哦:

redux-thunk的理解

  之前的actionCreators里面做同步操作:

1

  如果要做異步操作的話,我們非常容易想到需要這樣實現(xiàn):

2

  但是不好意思,瀏覽器直接報錯了! 說是這樣必須要采用redux的中間件才可以實現(xiàn)哦。

  那么接下來,我們就要正式的開始介紹這個redux-thunk的作用了

  在github上面的解釋為:A thunk is a function that wraps an expression to delay its evaluation.

  redux-thunk就是redux的中間件,中間件就是你可以在收到請求和返回請求之間做一些操作。

  那么中間件指代的是什么到什么中間呀?

  指的在派發(fā) action到達reducer中間的這個過程之間。之前沒有redux-thunk這個redux中間件的時候,內(nèi)部的actionCreators只能派發(fā)一個對象的action,不能做異步操作。但是后續(xù)使用了這個中間件之后呢,這個acitonCreators也可以返回一個函數(shù),在函數(shù)內(nèi)部將發(fā)射器通過參數(shù)dispatch傳遞給我們,讓我們在內(nèi)部可以進行一些異步操作,異步操作結(jié)束后再把真正的action對象dispatch派發(fā)出去等。

  好,那redux-thunk作用我們就懂了,那順便我們來看一下這個哥們的源碼吧.

3

  其實值得我們分析的函數(shù)為:

4

  內(nèi)部判斷傳遞過來的action類型如果是函數(shù)的話,就給函數(shù)傳入dispatch, getState參數(shù),否則執(zhí)行next(action)。next()函數(shù)的作用是把action對象傳給下一個中間件或為最終的reducer。

  所以在項目中使用redux-thunk的步驟為:

  首先需要:

6

  yarn add redux-thunk

  在創(chuàng)建store倉庫的時候,需要進行相關(guān)配置:

  最后回到最開始的代碼,我們只需要改成下述代碼即可:

  如果還不懂?那么看一下這個圖吧:

7

  恭喜您!這樣就可以解決在redux中的異步action的問題!更多關(guān)于前端培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實現(xiàn)高薪夢想。

  注:本文部分文字和圖片來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除。版權(quán)歸原作者所有!

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
反欺詐中所用到的機器學(xué)習(xí)模型有哪些?

一、邏輯回歸模型邏輯回歸是一種常用的分類模型,特別適合處理二分類問題。在反欺詐中,邏輯回歸可以用來預(yù)測一筆交易是否是欺詐。二、決策樹模...詳情>>

2023-10-14 14:09:29
軟件開發(fā)管理流程中會出現(xiàn)哪些問題?

一、需求不清需求不明確是導(dǎo)致項目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

2023-10-14 13:43:21
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動備份有什么區(qū)別?

1、定義和目標不同云快照的主要目標是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標...詳情>>

2023-10-14 12:48:59
快速通道