簡述react中如何非同步獲取資料

2021-10-03 04:55:46 字數 1019 閱讀 5711

在專案中我們常常需要通過後端提供的介面來非同步獲取資料,但是應該在哪獲取資料能,如果在reducer中獲取資料,顯然是不合適的,因為reducer是乙個純函式,純函式不適合做這些具有***的操作,如果在元件中去獲取的獲取的話,則很容易使**顯得冗雜,功能不單一。那究竟應該如何做呢?接下來我經用redux-thunk這個外掛程式來非同步獲取資料

1、首先安裝react-thunk外掛程式

npm i react-thunk
import

from

'redux'

import reducer from

'./reducer'

import thunk from

'redux-thunk'

let store =

createstore

(reducer,

(thunk)

)export

default store

3、在元件載入完成後派發乙個action

componentdidmount()

4、在creataction裡面進行ajax資料的獲取以及資料的派發

getdata()

)})}

}

5、在reducer.js中對非同步獲取的資料進行修改

const initialstate =

export

default

(state = initialstate, action)

=>

newstate.list=action.list

return newstate

default

:return state

}}

和react-thunk功能類似的還有react-saga、react-umi等。

最後,一首張杰的逆戰送給大家。

React中setState為非同步機制

setstate用來更改state,並觸發render方法重新渲染頁面,這之間要經過react核心中diff演演算法比較dom樹,最終決定是否需要被渲染如何渲染。如何在第一時間獲取並應用setstate的值,set完第一時間呼叫方法即可獲取 如 this.setstate nowstate 便利 1...

react中setState同步 非同步問題

class example extends react.component componentdidmount console.log this.state.val 第 1 次 log this.setstate console.log this.state.val 第 2 次 log settim...

React使用jquery方式動態獲取資料

好久沒寫react了,今天有空寫一下來react實現實時請求資料,並重新整理資料的小demo.首先我還是選擇了jquery方式中自帶的ajax獲取資料,首先要引用所需的js包 接下來要寫乙個自定義的js檔案,建立乙個react元件 var demo react.createclass 渲染元件 re...