目前寫 React 19 的文章已經(jīng)有很多很多了,但是,寫到點(diǎn)子上的并不多。包括官方文檔,只是簡(jiǎn)單的羅列出了它新增了一些 hook,一些特性,卻并沒有進(jìn)一步說明這些 hook 背后所代表的含義,它們的最佳實(shí)踐是什么。
以至于,在這個(gè)時(shí)間節(jié)點(diǎn),期待 React 19 的人也并不是很多。
但是,我要告訴大家的是,我們都嚴(yán)重低估了 React 19。
beta 版在 npm 上可用之后,我就創(chuàng)建了一個(gè)項(xiàng)目,把 React 新增的特性都使用了一遍。如下圖所示。
在項(xiàng)目開發(fā)中,新頁(yè)面渲染時(shí)請(qǐng)求一個(gè)接口的場(chǎng)景非常常見。新的架構(gòu)思維的開發(fā)代碼如下所示。
該案例沒有引入任何三方庫(kù)。
首先我們需要定義一個(gè) API 用于請(qǐng)求數(shù)據(jù)。
const api = async () => { const res = await fetch('https://api.chucknorris.io/jokes/random') return res.json()}
然后創(chuàng)建一個(gè)函數(shù)組件,并執(zhí)行該 api。
export default function Index() { const __api = api() return ( <div> <div id='tips'>初始化時(shí),自動(dòng)獲取一條數(shù)據(jù)內(nèi)容</div> <Suspense fallback={<div>loading...</div>}> <Item api={__api} /> </Suspense> </div> )}
最后在子組件中,獲取 api 執(zhí)行之后得到的數(shù)據(jù)。
const Item = (props) => { const joke = use(props.api) return ( <div> <div>{joke.value}</div> </div> )}
大家可以自行感受一下新的開發(fā)方式與以前基于 useEffect 請(qǐng)求數(shù)據(jù)有什么不同之處。
注意:一套成熟架構(gòu)思維,不是使用一個(gè)簡(jiǎn)單的方案解決某一個(gè)問題,而是要基于這套思維去解決項(xiàng)目中的絕大多數(shù)場(chǎng)景。因此我們一定要結(jié)合大量的場(chǎng)景去理解一套項(xiàng)目架構(gòu)思維。
本文鏈接:http://www.tebozhan.com/showinfo-26-92116-0.html被嚴(yán)重低估!React 19 又是一次開發(fā)方式的變革,useEffect 將會(huì)逐漸退出歷史舞臺(tái)
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: Axios Node 端請(qǐng)求是如何實(shí)現(xiàn)的?
下一篇: 快看,我的代碼能“自己說話”!