国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【12】基礎(chǔ)知識:React ajax

這篇具有很好參考價值的文章主要介紹了【12】基礎(chǔ)知識:React ajax。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、React ajax

了解

React 本身只關(guān)注于界面,并不包含發(fā)送 ajax 請求的代碼

前端應(yīng)用需要通過 ajax 請求與后臺進(jìn)行交互(json 數(shù)據(jù))

react 應(yīng)用中需要集成第三方 ajax 庫(或自己封裝)

常用的 ajax 請求庫

1、jQuery:比較重,如果需要另外引入不建議使用

2、axios:輕量級,建議使用

封裝 XmlHttpRequest 對象的 ajax,promise 風(fēng)格,可以用在瀏覽器端和 node 服務(wù)器端。

文檔:https://github.com/axios/axios

安裝:$ npm install axios

二、react 腳手架配置代理總結(jié)

React 項目啟動以后,運行到本地 3000 端口,地址為 http://localhost:3000

請求 api 接口,接口地址為 http://localhost:5000/students | http://localhost:5001/cars

瀏覽器發(fā)起 ajax 請求時,會存在跨域問題

方式一

在 package.json 中追加如下配置

"proxy": "http://localhost:5000"

請求地址修改為:http://localhost:3000/students (先請求本地3000端口下的代理,通過代理轉(zhuǎn)發(fā)請求到5000端口,代理再將服務(wù)端返回數(shù)據(jù)轉(zhuǎn)發(fā)回來)

axios.get('http://localhost:3000/students')

說明:

1、優(yōu)點:配置簡單,前端請求資源時可以不加任何前綴。
2、缺點:不能配置多個代理。
3、工作方式:上述方式配置代理,當(dāng)請求了 3000 不存在的資源時,那么該請求會轉(zhuǎn)發(fā)給5000 (優(yōu)先匹配前端資源 public 目錄下)

方法二

第一步:創(chuàng)建代理配置文件

在src下創(chuàng)建配置文件:src/setupProxy.js

第二步:編寫 setupProxy.js 配置具體代理規(guī)則

// 配置代理中間件,以進(jìn)行連接、表達(dá)、瀏覽器同步等。
const { createProxyMiddleware } = require('http-proxy-middleware')

// 配置代理服務(wù)
const apiProxy = createProxyMiddleware('/api1', { // api1 是需要轉(zhuǎn)發(fā)的請求(所有帶有/api1前綴的請求都會轉(zhuǎn)發(fā)給5000)
	target: 'http://localhost:5000', // 配置轉(zhuǎn)發(fā)目標(biāo)地址(能返回數(shù)據(jù)的服務(wù)器地址)
	changeOrigin: true, // 控制服務(wù)器收到的請求頭中Host的值
	pathRewrite: { // 重寫請求路徑(必須),去除請求前綴,保證交給后臺服務(wù)器的是正常請求地址
		'^/api1': ''
	}
})

const apiProxy2 = createProxyMiddleware('/api2', {
	target: 'http://localhost:5001',
	changeOrigin: true,
	pathRewrite: {
		'^/api2': ''
	}
})

module.exports = function(app) {
	app.use(apiProxy)
	app.use(apiProxy2)
}

說明:

1、優(yōu)點:可以配置多個代理,可以靈活的控制請求是否走代理。

2、缺點:配置繁瑣,前端請求資源時必須加前綴。

三、消息訂閱-發(fā)布機制

實現(xiàn)兄弟組件間通信

1、工具庫:PubSubJS

2、下載: npm install pubsub-js --save

3、使用:

import PubSub from 'pubsub-js' // 引入
PubSub.subscribe('delete', function(msg, data){ }) // 訂閱
PubSub.publish('delete', data) // 發(fā)布消息
PubSub.unsubscribe() // 取消訂閱(類似于定時器timer)

四、擴展 Fetch

1、文檔:

https://github.github.io/fetch/

https://segmentfault.com/a/1190000003810652

2、特點

fetch:原生函數(shù),不再使用 XmlHttpRequest 對象提交 ajax 請求,支持 promise

老版本瀏覽器可能不支持文章來源地址http://www.zghlxwxcb.cn/news/detail-724518.html

到了這里,關(guān)于【12】基礎(chǔ)知識:React ajax的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【前端知識】React 基礎(chǔ)鞏固(二十七)——Fragment

    【前端知識】React 基礎(chǔ)鞏固(二十七)——Fragment

    Fragment 允許將子列表分組,而無需向 DOM 添加額外節(jié)點 可以采用語法糖 / 來替代 Fragment,但在需要添加 key 的場景下不能使用此短語 查看Fragment應(yīng)用后的效果

    2024年02月16日
    瀏覽(28)
  • 【前端知識】React 基礎(chǔ)鞏固(二十八)——StrictMode

    【前端知識】React 基礎(chǔ)鞏固(二十八)——StrictMode

    StrictMode 是一個用來突出顯示應(yīng)用程序中潛在問題的工具 與 Fragment 一樣,StrictMode 不會渲染任何可見的 UI 為后代出發(fā)額外的檢測和警告 嚴(yán)格模式檢查僅在開發(fā)模式下運行,不影響生產(chǎn)構(gòu)建 嚴(yán)格模式檢查什么? 識別不安全的生命周期 使用過時的 ref API 檢查意外的副作用 組件

    2024年02月16日
    瀏覽(57)
  • 【前端知識】React 基礎(chǔ)鞏固(三十九)——React-Router的基本使用

    【前端知識】React 基礎(chǔ)鞏固(三十九)——React-Router的基本使用

    Router中包含了對路徑改變的監(jiān)聽,并且會將相應(yīng)的路徑傳遞給子組件。 Router包括兩個API: BrowserRouter使用history模式 HashRouter使用hash模式(路徑后面帶有#號) 嘗試在項目中使用HashRouter: 安裝Router 在 index.js 中引入并使用HashRouter Routes:包裹所有的Route,在其中匹配一個路由(

    2024年02月14日
    瀏覽(27)
  • 【前端知識】React基礎(chǔ)鞏固(二)——JSX注意點

    createElement存在的問題: 繁瑣不簡潔 不直觀,無法一眼看出所描述的結(jié)構(gòu) 不優(yōu)雅,開發(fā)體驗不好 JSX 簡介:JSX 是 JavaScript XML 的簡寫,表示了在JS代碼中寫XML(HTML)格式的代碼 優(yōu)勢:聲明式語法更加直觀,與HTML結(jié)構(gòu)相同,降低學(xué)習(xí)成本,提高開發(fā)效率 JSX 是 react 的核心內(nèi)容‘

    2024年02月09日
    瀏覽(28)
  • 【前端知識】React 基礎(chǔ)鞏固(二十九)——過渡動畫 react-transition-group

    react-transition-group 包含: Transition(該組件是一個和平臺無關(guān)的組件,不一定結(jié)合 CSS) CSSTransition(通常使用此組件實現(xiàn)過渡動畫效果) SwitchTransition(兩個組件顯示/隱藏切換時使用) TransitionGroup(將多個動畫包裹其中,一般用于列表中元素的動畫) CSSTransition CSSTransition 基于

    2024年02月16日
    瀏覽(60)
  • 【前端知識】React 基礎(chǔ)鞏固(十七)——組件化開發(fā)(一)

    什么是組件化開發(fā)? 分而治之的思想 將一個頁面拆分成一個個小的功能塊 將應(yīng)用抽象成一顆組件樹 React的組件相對于Vue更加的靈活和多樣 按照不同的方式可以分為很多類組件 根據(jù) 組件的定義方式 ,分為: 函數(shù)組件 、 類組件 根據(jù) 組件內(nèi)部是否有狀態(tài)需要維護 ,分為:

    2024年02月12日
    瀏覽(54)
  • 【前端知識】React 基礎(chǔ)鞏固(三十五)——ReduxToolKit (RTK)

    【前端知識】React 基礎(chǔ)鞏固(三十五)——ReduxToolKit (RTK)

    Redux Tool Kit (RTK)是官方推薦的編寫Redux邏輯的方法,旨在成為編寫Redux邏輯的標(biāo)準(zhǔn)方式,從而解決上面提到的問題。 RTK的核心API主要有如下幾個: configureStore:包裝createStore以提供簡化的配置選項和良好的默認(rèn)值。它可以自動組合你的slice reducer,添加你提供的任何Redux中間件

    2024年02月15日
    瀏覽(21)
  • 【前端知識】React 基礎(chǔ)鞏固(三十一)——Redux的簡介

    概念 純函數(shù)(確定的輸入一定產(chǎn)生確定的輸出,函數(shù)在執(zhí)行過程中不產(chǎn)生副作用): 在程序設(shè)計中,若一個函數(shù)符合以下條件,那么這個函數(shù)就被稱為純函數(shù) 此函數(shù)在相同的輸入值時,需產(chǎn)生相同的輸出 函數(shù)的輸出和輸入值以外的其他隱藏信息或狀態(tài)無關(guān),也和由I/O設(shè)備產(chǎn)

    2024年02月16日
    瀏覽(24)
  • 【前端知識】React 基礎(chǔ)鞏固(四十三)——Effect Hook

    【前端知識】React 基礎(chǔ)鞏固(四十三)——Effect Hook

    Effect Hook 用來完成一些類似class中生命周期的功能。 在使用類組件時,不管是渲染、網(wǎng)路請求還是操作DOM,其邏輯和代碼是雜糅在一起的。例如我們希望把計數(shù)器結(jié)果顯示在標(biāo)簽上,在類組件中,我們通過生命周期進(jìn)行實現(xiàn),如下所示: 在函數(shù)組件中,我們可以利用useEffec

    2024年02月14日
    瀏覽(38)
  • 【前端知識】React 基礎(chǔ)鞏固(十九)——組件化開發(fā)(三)

    Main.jsx TabControl/index.jsx TabControl/style.css

    2024年02月13日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包