最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React中條件渲染的常見方法總結(jié)

 更新時間:2024年01月03日 08:21:49   作者:小九九愛學(xué)習(xí)83645  
條件渲染在React開發(fā)中非常重要的功能,它允許開發(fā)人員根據(jù)條件控制渲染的內(nèi)容,在創(chuàng)建動態(tài)和交互式用戶界面方面發(fā)揮著至關(guān)重要的作用,本文總結(jié)了常用的的條件渲染方法,需要的朋友可以參考下

1.If-else

if-else是一種控制流程的簡單方法,在控制渲染中能發(fā)揮很好的作用。

2.三元運(yùn)算符(?)

三元運(yùn)算符是條件如果為真則返回一個值,如果為假則返回另一個值,

在react中使用的非常廣泛,在條件比較簡單和內(nèi)容較少的情況下非常實(shí)用,并且語法簡潔。

3.邏輯與(&&)

在只關(guān)注一種條件結(jié)果的情況下,使用邏輯與比三元運(yùn)算符更簡潔。

4.空值合并運(yùn)算符(??)

當(dāng)空合并運(yùn)算符 ( ??) 前面的值為null或undefined, 會返回問號右邊的表達(dá)式。

在組件內(nèi),我們使用空合并運(yùn)算符 (??) 來處理可能agenullundefined的情況。如果user.age缺少,該userAge變量默認(rèn)為“未知”,然后在渲染的輸出中使用。這確保了即使年齡數(shù)據(jù)不存在,組件也可以優(yōu)雅地處理這種數(shù)據(jù)缺失。

5.Switch Case 語句

switch/case非常適合在 React 中不同條件導(dǎo)致導(dǎo)致不同渲染,確保代碼的可維護(hù)且可讀性。

6.策略方案

該方案可以作為Switch Case的替代者,

甚至可以使用true和false來做key來處理一些特定場景,在下面的場景中isWorkDay,isSunday,isFestival都可能是true,所以這里產(chǎn)生了優(yōu)先級,可以利用這里的優(yōu)先級來做一些條件渲染。

高階條件渲染場景

掌握基本常用方法后,還會遇到需要更復(fù)雜解決方案的場景。

7.ErrorBoundry

ErrorBoundry可以捕獲其子組件樹中的 JavaScript 錯誤、記錄這些錯誤,并顯示兜底UI 而不是崩潰的組件樹的組件。

在這里需要捕獲到錯誤的時候依據(jù)條件渲染用戶自定義的兜底UI。

8.高階組件 (HOC)

HOC 是包裝組件的函數(shù),可以根據(jù)收到的 props 有條件地渲染組件,從而提供更靈活的方式來跨組件共享邏輯。

想象一下,有一個功能只有擁有高級帳戶的用戶才能看到。我們將創(chuàng)建一個 HOC 來檢查用戶的帳戶類型并有條件地相應(yīng)地呈現(xiàn)組件。

高階組件withPremiumFeature中根據(jù)參數(shù)判斷展示內(nèi)容

9.render props

render props是將函數(shù)作為props傳遞給組件,該函數(shù)中可以根據(jù)條件判斷決定UI展示。

在這個例子中,該UserOnlineStatus組件負(fù)責(zé)確定用戶的在線狀態(tài),但不直接渲染UI。相反,它將渲染委托給一個 prop(render prop),這是一個由父組件傳遞的函數(shù)。函數(shù) ( renderStatus) 獲取isOnline狀態(tài)并根據(jù)此信息決定渲染內(nèi)容。

條件渲染的最佳實(shí)踐

  • If/Else 語句: 使用傳統(tǒng)的 if/else 語句進(jìn)行簡單的分支邏輯渲染組件,簡單易讀。當(dāng)條件簡單且有限時,if/else 語句通常是一個不錯的選擇。
  • 三元運(yùn)算符 (?): 三元運(yùn)算符非常適合簡潔的條件渲染,特別當(dāng)需要基于單個條件渲染兩個組件之一時。它非常適合希望保持 JSX 干凈且可讀的簡單場景。
  • 邏輯 AND (&&): 當(dāng)只想條件為真渲染組件時,邏輯 AND 運(yùn)算符是一個干凈而高效的選擇。
  • 空值合并運(yùn)算符 (??): 使用空值合并運(yùn)算符為 null 或未定義的操作數(shù)提供默認(rèn)值。當(dāng)您需要確保組件不會因丟失數(shù)據(jù)而損壞時,它特別有用。即使數(shù)據(jù)可能不存在,該技術(shù)也能確保穩(wěn)健的渲染。
  • Switch Case 語句: 當(dāng)您有多個條件導(dǎo)致不同的渲染時可使用 switch case 語句。這種方法可以保持代碼的組織性和可讀性,使其成為具有多個條件分支的復(fù)雜場景的絕佳選擇。
  • 策略方案: 可維護(hù)性高,但是條件復(fù)雜的時候會比較麻煩。

針對特定用例的高級技術(shù):

  • ErrorBoundry: 主要應(yīng)用在捕獲組件樹的錯誤并展示兜底UI的場景。
  • 高階組件 (HOC): HOC 對于封裝和重用組件邏輯有用,并且在想要根據(jù) props 或用戶特定條件渲染組件的場景中尤其有用
  • render Props: 當(dāng)您需要對渲染進(jìn)行細(xì)粒度控制并希望在組件之間共享渲染邏輯時,render props模式是一個不錯的選擇

注意事項(xiàng)

1. 過度使用三元運(yùn)算符:

  • 嵌套的三元運(yùn)算符的可讀性堪憂,如果發(fā)現(xiàn)使用了嵌套三元運(yùn)算符,這可能表明應(yīng)該重構(gòu)為單獨(dú)的組件或使用更合適的方法,例如if語句或創(chuàng)建新的渲染函數(shù)。

2.濫用邏輯&&造成短路:

  • 處理數(shù)字0或者空字符串時要小心。例如,如果 count 為 0,{count && <Component />}則將無法渲染,因?yàn)?0 在 JavaScript 中是一個假值。

3. 濫用空值合并運(yùn)算符??:不要將它與邏輯||運(yùn)算符混淆。value ?? alternative如果“value”為空或未定義,則表達(dá)式僅顯示“alternative”,而value || alternative對于每個假值(例如,''、0、false)則顯示“alternative”。

以上就是React中條件渲染的常見方法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于React條件渲染的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • React之使用useState異步刷新的問題

    React之使用useState異步刷新的問題

    這篇文章主要介紹了React之使用useState異步刷新的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 一文詳解React Redux設(shè)計(jì)思想與工作原理

    一文詳解React Redux設(shè)計(jì)思想與工作原理

    最近看項(xiàng)目中使用了?Redux,?便嘗試了解一波?Redux?的設(shè)計(jì)思想與工作原理,所以本文詳細(xì)的給大家介紹了Redux設(shè)計(jì)思想與工作原理,需要的朋友可以參考下
    2023-09-09
  • React中編寫CSS實(shí)例詳解

    React中編寫CSS實(shí)例詳解

    這篇文章主要為大家介紹了React中編寫CSS實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 可定制react18 input otp 一次性密碼輸入組件

    可定制react18 input otp 一次性密碼輸入組件

    這篇文章主要為大家介紹了可定制react18 input otp 一次性密碼輸入組件,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • React組件重復(fù)渲染的成因與解決方法

    React組件重復(fù)渲染的成因與解決方法

    React 組件的重復(fù)渲染是開發(fā)中常見的性能問題之一,尤其是在大型應(yīng)用中,組件的頻繁渲染會導(dǎo)致性能瓶頸,本文將探討 React 組件重復(fù)渲染的常見原因,并提供優(yōu)化策略,幫助開發(fā)者提升應(yīng)用性能,需要的朋友可以參考下
    2025-03-03
  • React中使用echarts-for-react的方法示例

    React中使用echarts-for-react的方法示例

    echarts-for-react則是ECharts在React生態(tài)中的官方封裝組件,它讓開發(fā)者能夠輕松地在React應(yīng)用中集成ECharts圖表,本文就來介紹一下echarts-for-react的使用,感興趣的可以了解一下
    2025-03-03
  • React中useTransition鉤子函數(shù)的使用詳解

    React中useTransition鉤子函數(shù)的使用詳解

    React?18的推出標(biāo)志著React并發(fā)特性的正式到來,其中useTransition鉤子函數(shù)是一個重要的新增功能,下面我們就來學(xué)習(xí)一下useTransition鉤子函數(shù)的具體使用吧
    2024-02-02
  • React報(bào)錯解決之ref返回undefined或null

    React報(bào)錯解決之ref返回undefined或null

    最近使用react做個滾動監(jiān)聽獲取更多數(shù)據(jù)效果,當(dāng)想獲取dom時發(fā)現(xiàn)怎么也獲取不到,下面這篇文章主要給大家介紹了關(guān)于React報(bào)錯解決之ref返回undefined或null的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 為什么說form元素是React的未來

    為什么說form元素是React的未來

    這篇文章主要介紹了為什么說form元素是React的未來,本文會帶你聊聊React圍繞form的布局與發(fā)展,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • React中ES5與ES6寫法的區(qū)別總結(jié)

    React中ES5與ES6寫法的區(qū)別總結(jié)

    這篇文章主要總結(jié)介紹了關(guān)于React中ES5與ES6的寫法區(qū)別,文中介紹的非常詳細(xì),相信對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-04-04

最新評論

巴塘县| 乡城县| 广昌县| 安阳市| 兴文县| 永泰县| 平舆县| 阜康市| 阿巴嘎旗| 会理县| 黑水县| 桂林市| 新乡县| 玉环县| 五常市| 沧州市| 高台县| 聂荣县| 公安县| 肥西县| 乌兰浩特市| 清流县| 海宁市| 连南| 什邡市| 峨眉山市| 双柏县| 长泰县| 子长县| 苏州市| 自贡市| 华亭县| 华坪县| 浦东新区| 井冈山市| 抚顺县| 政和县| 黎川县| 樟树市| 开阳县| 太康县|