React解惑之 redux-saga

Redux-saga

概述

redux-saga和redux-thunk一樣碉京,是用于處理redux應(yīng)用異步請(qǐng)求的中間件丈咐,reduxsaga通過創(chuàng)建sagas來把所有的異步請(qǐng)求集中處理,方便維護(hù)驱负。本篇文章將講述如何使用redux-saga來處理異步請(qǐng)求戳吝,

項(xiàng)目預(yù)覽地址:需要的小伙伴可以查看頁面

工程部署

項(xiàng)目中redux文件夾就是saga的配置文件,由于項(xiàng)目中沒有多個(gè)state需要管理账磺,所以store里面的數(shù)據(jù)就是我們需要的數(shù)據(jù)。

effects.js?

用于定義effects處理方法痊远,和導(dǎo)出saga監(jiān)聽action處理方法垮抗,effects中fetchTopics方法詳情如下:


注意effects中的方法都是Generator方法,使用同步的寫法來調(diào)用異步請(qǐng)求碧聪,不在使用回調(diào)冒版、async/await等方法來處理,代碼更簡(jiǎn)潔

處理步驟:

1逞姿、調(diào)用redux-saga/effects中的方法 call辞嗡,訪問接口獲取數(shù)據(jù)捆等;

2、接口訪問成功续室,使用redux-saga/effects中的方法put栋烤,發(fā)起action,這里的put方法和dispatch一樣挺狰,都是用于發(fā)起action明郭;

3、put發(fā)起action后丰泊,redux的reducers會(huì)收到action薯定,從而更新state。

reducers.js?

這里的寫法和redux-thunk中reducers寫法一樣

main.js

main.js 中首先加入redux-saga中間件瞳购,用于處理異步請(qǐng)求话侄,這里的sagaMiddleware.run() 方法,主要是啟動(dòng)saga苛败,用于監(jiān)聽actions請(qǐng)求满葛,待匹配到定義的effects type時(shí),轉(zhuǎn)發(fā)調(diào)用effects方法罢屈,從而處理異步請(qǐng)求

調(diào)用過程:

從打印數(shù)據(jù)中可以看出嘀韧,當(dāng)dispatch一個(gè)action時(shí),首先進(jìn)入的是reducers方法缠捌,由于type為fetchTopics的action锄贷,saga已經(jīng)注冊(cè)監(jiān)聽,則會(huì)調(diào)用effects中的fetchTopics方法曼月,待異步請(qǐng)求完畢之后谊却,調(diào)用put發(fā)起了一個(gè)新的topics action,所以還是會(huì)進(jìn)入reducers中進(jìn)行處理哑芹。

總結(jié)

redux-saga的使用主要是添加監(jiān)聽炎辨,用于處理自定義的異步處理請(qǐng)求,在將結(jié)果調(diào)用put方法發(fā)起action聪姿,從而交給reducer方法處理碴萧,使得redux異步處理更靈活。

代碼鏈接地址:需要的小伙伴可以下載

如果對(duì)你有幫助末购,勞煩點(diǎn)個(gè)贊吧破喻,謝謝!-V-

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盟榴,一起剝皮案震驚了整個(gè)濱河市曹质,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖羽德,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件几莽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡玩般,警方通過查閱死者的電腦和手機(jī)银觅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來坏为,“玉大人,你說我怎么就攤上這事镊绪≡确” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵蝴韭,是天一觀的道長(zhǎng)够颠。 經(jīng)常有香客問我,道長(zhǎng)榄鉴,這世上最難降的妖魔是什么履磨? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮庆尘,結(jié)果婚禮上剃诅,老公的妹妹穿的比我還像新娘。我一直安慰自己驶忌,他們只是感情好矛辕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著付魔,像睡著了一般聊品。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上几苍,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天翻屈,我揣著相機(jī)與錄音,去河邊找鬼妻坝。 笑死伸眶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惠勒。 我是一名探鬼主播赚抡,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼纠屋!你這毒婦竟也來了涂臣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赁遗,沒想到半個(gè)月后署辉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岩四,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年哭尝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剖煌。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡材鹦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耕姊,到底是詐尸還是另有隱情桶唐,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布茉兰,位于F島的核電站尤泽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏规脸。R本人自食惡果不足惜坯约,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望莫鸭。 院中可真熱鬧闹丐,春花似錦、人聲如沸黔龟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氏身。三九已至巍棱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛋欣,已是汗流浹背航徙。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陷虎,地道東北人到踏。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像尚猿,于是被迫代替她去往敵國(guó)和親窝稿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容