如何在React中做Ajax 請求?

2021-08-04 23:55:49 字數 1703 閱讀 9718

首先:react本身沒有獨有的獲取資料的方式。實際上,就react而言,它甚至不知道有伺服器畫面的存在。

react只是簡單地渲染元件,單獨從兩個地方獲取資料:propsstate

因此,為了使用伺服器的資料,你需要在你的元件(component)的propsstate裡拿到資料。

你可以將這個過程與服務和資料模型複雜化,就像你所希望的那樣,但最終只是元件渲染propsstate

為了獲取來自伺服器的資料,你需要乙個http庫,網上有很多,最終他們都做同樣的事情,但他們有不同的特點。

如下是乙個簡單的例項,乙個元件從subreddit獲取職位。看看這個例子,我們將會了解它是如何工作的

import

react

from

'react'

;import

reactdom

from

'react-dom'

;import

axios

from

'axios'

;class

fetchdemo

extends

react.component ;

} componentdidmount()

.json`

) .then(res

=> );

});} render()

`}<

/h1>

><

/li>

)}<

/ul>

<

/div>

);}}

reactdom.render(

"reactjs"

/>,

document.getelementbyid('root'

));

首先,我們將axiosimport進來。

這個constructor先呼叫super,然後初始化state,讓它擁有乙個posts空陣列。

componentdidmount是關鍵所在,這個方法將會在元件插入dom的第一時間執行。該方法在整個元件的生命週期只會執行一次。

它使用axios.get方法從subreddit獲取資料,反引號的字串是es6的模板字串,${}部分是由表示式的值所取代,所以url傳遞給axios.get實際上是

有兩點你需要注意的是:

因為axios使用promise,所有我們可以鏈式呼叫then方法來處理response。獲取的職位資訊是一點一點的轉換後提取的,最重要的一點是,元件的狀態(state)是由職位與新陣列呼叫this.setstate更新的,由此觸發乙個重新渲染,然後職位就可以看見了

如何在react中使用路由功能

用 包裹起來,表示這裡面我要使用路由了。裡面需要用乙個標籤包起來,不然回報錯哦 使用就可以跳轉了,其中exact的意思是,只有當路徑完全一樣時才可以進行跳轉 這樣就可以正確的使用路由功能啦!下面來看看如何拆分首頁並且通過路由訪問吧!1.首先需要引入元件 2.然後將之前的render跟換成compon...

如何在QML中利用Sprite來做我們需要的動畫

在遊戲中動畫的設計非常中要。在qml中,它提供了豐富的animation,但是有時我們需要對影象進行變化,就像放電影一樣。在今天的這篇文章中,我們將設計乙個可以變化影象的動畫。我們可以通過qt所提供的sprite功能來實現。為了設計的方便,我們先設計乙個我們自己的bear動畫,這個動畫的影象大小為 ...

如何在鳳巢系統之下做SEO

導讀 度娘的左側競價模式曾一度傷了不少seoer的心,特別是做產品營銷的seoer,辛辛苦苦的耕耘,起早貪黑,好不容易把關鍵字弄到了第一位。但是 在面對第一屏滿滿 推廣 兩個字的時候,相信很少有人能真正的高興起來。不得不承認,度娘這招確實很狠,有點釜底抽薪的意思。最近又推出賬戶優化 工具,鳳巢系統的...