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

詳解React中Fragment的簡(jiǎn)單使用

 更新時(shí)間:2022年10月17日 08:17:22   作者:我是ed  
這篇文章主要介紹了詳解React中Fragment的簡(jiǎn)單使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)我們學(xué)習(xí)React有一定的幫助,感興趣的小伙伴們可以參考一下

react 中的 Fragment

今天說的這一小節(jié)超級(jí)簡(jiǎn)單,但是呢,不說還不行,因?yàn)樵趯?shí)際開發(fā)項(xiàng)目當(dāng)中你會(huì)確確實(shí)實(shí)的發(fā)現(xiàn)有這樣一個(gè)使用場(chǎng)景,很多人都會(huì)寫,所以說盡管不影響我們的實(shí)際開發(fā),但別人確實(shí)會(huì)這樣操作,為了能更好的看清項(xiàng)目代碼,稍微提一嘴吧。

標(biāo)簽渲染

Fragment 標(biāo)簽的使用啊超級(jí)簡(jiǎn)單,就 <Fragment></Fragment> 包裹一下就可以了。

首先我們現(xiàn)在簡(jiǎn)單的寫一個(gè)組件,然后直接掛載在根組件下面。

// 創(chuàng)建外殼組件
import React, { Component } from "react";

// 創(chuàng)建并暴露APP組件
export default class App extends Component {

  render() {
    return (
      <div>
        <h1>我是????.</h1>
      </div>
    )
  }
}

我們 F12 看一下 Elements。

我們看到,有一個(gè) id 是 root 的 div 標(biāo)簽,這個(gè)很好理解,就是掛載的 div,也就是 index.html 文字中的那個(gè) div 標(biāo)簽。

那下面那個(gè) div 是哪個(gè)?

沒錯(cuò),是我們自己寫組件包裹的,這里樣一看,啊,就為了展示一個(gè) h1 標(biāo)簽就嵌套了那么多 div ,太麻煩了,這里可以省略嗎? 可以,因?yàn)榻M件里面這個(gè) div 里面只包含了一個(gè)標(biāo)簽啊,所以說組件中的 div 是可以省略掉的,但是如果這個(gè)組件中有兩個(gè)標(biāo)簽,那組件根節(jié)點(diǎn)的 div 就不允許省略!?。?!

那不省略的話,每次 react 渲染完,每個(gè)組件都會(huì)多渲染一個(gè) 根 div 的話層級(jí)結(jié)構(gòu)會(huì)不會(huì)顯得很亂啊!答案是會(huì)的,能不能解決一下子?可以的!這時(shí)候就使用到了我們今天說的 Fragment 標(biāo)簽。

Fragment 標(biāo)簽

怎么理解哈,你就想象,F(xiàn)ragment 標(biāo)簽 就是一個(gè)簡(jiǎn)單的標(biāo)簽,在 react 項(xiàng)目中就充當(dāng)組件根節(jié)點(diǎn)的 div 使用。只要使用 Fragment 標(biāo)簽,那么在 react 中渲染的時(shí)候,都會(huì)被自動(dòng)忽略掉,不會(huì)被渲染。

我們修改一下組件的代碼,使用 Fragment 標(biāo)簽,首先 Fragment 標(biāo)簽需要引入才可以使用的。

// 創(chuàng)建外殼組件
import React, { Component, Fragment } from "react";

// 創(chuàng)建并暴露APP組件
export default class App extends Component {

  render() {
    return (
      <Fragment>
        <h1>我是????.</h1>
      </Fragment>
    )
  }
}

我們將組件根標(biāo)簽 div 替換成了 Fragment 標(biāo)簽,我們看一下效果:

我們看到哈,我們使用了 Fragment 之后呢,組件根 div 沒有了,但是呢,我們寫的 Fragment 標(biāo)簽也沒有對(duì)應(yīng)的渲染,而是自動(dòng)忽略掉了。這就是 Fragment 的作用,你需要將幾個(gè)組件包裹,但是有不想多余的渲染出真實(shí)Dom,就可以使用 Fragment 標(biāo)簽包裹。

當(dāng)然,很多開發(fā)者在開發(fā) react 的時(shí)候,像這種地方,他不會(huì)使用 div,當(dāng)然了也不會(huì)使用 Fragment 標(biāo)簽,而是 <></> 空標(biāo)簽。

我們改一下代碼哈!不使用 Fragment 標(biāo)簽了,直接寫空標(biāo)簽看一下有什么作用:

// 創(chuàng)建外殼組件
import React, { Component, Fragment } from "react";

// 創(chuàng)建并暴露APP組件
export default class App extends Component {

  render() {
    return (
      <>
        <h1>我是????.</h1>
      </>
    )
  }
}

我們看一下效果:

我們看到哈,沒有使用 Fragment 標(biāo)簽,只是用 空標(biāo)簽 的話,效果和使用 Fragment 標(biāo)簽是一摸一樣的!而且有沒有發(fā)現(xiàn)啊,如果使用 空標(biāo)簽 的話,還少了引入 Fragment 標(biāo)簽的步驟,更方便了,所以說很多程序員選擇使用空標(biāo)簽的方式作為組件的根節(jié)點(diǎn)。

但是 Fragment 標(biāo)簽和 空標(biāo)簽 是有區(qū)別的。

Fragment 標(biāo)簽和 <></> 區(qū)別

想象一下,如果我們需要遍歷一個(gè)標(biāo)簽,我們使用 Fragment 標(biāo)簽包裹,在 Fragment 標(biāo)簽寫 for 循環(huán)可以嗎?可以!因?yàn)?Fragment 可以使用一個(gè)參數(shù),就是 key。遍歷的時(shí)候需要寫唯一的 key 值吧?Fragment 允許你使用key。

有人問我寫的 name、或者是 class 不可以嗎?答案是不可以!

為啥不可以哈,Fragment這個(gè)標(biāo)簽啊,他不會(huì)渲染真實(shí)的 Dom,你可以寫啊,但是他沒意義啊!因?yàn)樗粫?huì)被渲染出來。所以說他只支持一個(gè)樹形,就是 key ,目的就是讓你循環(huán)使用的。

<></> 就不行了,他什么屬性也不讓你用,所以說,空標(biāo)簽一般只作為一個(gè)容器包裹其他標(biāo)簽使用,不能進(jìn)行循環(huán)判斷等任何操作。

所以說:如果僅僅是需要一個(gè)標(biāo)簽包裹其他的標(biāo)簽,可以使用 真實(shí)Dom( div )、 Fragment 和 空標(biāo)簽,但是需要使用循環(huán),不能使用空標(biāo)簽!

到此這篇關(guān)于詳解React中Fragment的簡(jiǎn)單使用的文章就介紹到這了,更多相關(guān)React Fragment內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • react 報(bào)錯(cuò)Module build failed: BrowserslistError: Unknown browser query `dead`問題的解決方法

    react 報(bào)錯(cuò)Module build failed: Browserslis

    這篇文章主要介紹了react 報(bào)錯(cuò)Module build failed: BrowserslistError: Unknown browser query `dead`問題的解決方法,需要的朋友可以參考下
    2023-06-06
  • react-native android狀態(tài)欄的實(shí)現(xiàn)

    react-native android狀態(tài)欄的實(shí)現(xiàn)

    這篇文章主要介紹了react-native android狀態(tài)欄的實(shí)現(xiàn),使?fàn)顟B(tài)欄顏色與App顏色一致,使用戶界面更加整體。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • React實(shí)現(xiàn)分頁效果

    React實(shí)現(xiàn)分頁效果

    這篇文章主要為大家詳細(xì)介紹了React實(shí)現(xiàn)分頁效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • React組件的生命周期詳解

    React組件的生命周期詳解

    React是用于構(gòu)建用戶界面的JavaScript庫。本文詳細(xì)講解了React的生命周期,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 詳解React Native 采用Fetch方式發(fā)送跨域POST請(qǐng)求

    詳解React Native 采用Fetch方式發(fā)送跨域POST請(qǐng)求

    這篇文章主要介紹了詳解React Native 采用Fetch方式發(fā)送跨域POST請(qǐng)求,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • react實(shí)現(xiàn)路由動(dòng)畫跳轉(zhuǎn)功能

    react實(shí)現(xiàn)路由動(dòng)畫跳轉(zhuǎn)功能

    這篇文章主要介紹了react路由動(dòng)畫跳轉(zhuǎn)功能,大概思路是下載第三方庫?引用,創(chuàng)建css文件引用,想要實(shí)現(xiàn)跳轉(zhuǎn)動(dòng)畫功能,就在那個(gè)組件的根節(jié)點(diǎn)綁定classname屬性即可,在跳轉(zhuǎn)的時(shí)候即可實(shí)現(xiàn),需要的朋友可以參考下
    2023-10-10
  • react native與webview通信的示例代碼

    react native與webview通信的示例代碼

    本篇文章主要介紹了react native與webview通信的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • React錯(cuò)誤的習(xí)慣用法分析詳解

    React錯(cuò)誤的習(xí)慣用法分析詳解

    這篇文章主要為大家介紹了React錯(cuò)誤用法習(xí)慣分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • React Fragment介紹與使用詳解

    React Fragment介紹與使用詳解

    本文主要介紹了React Fragment介紹與使用詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 基于React封裝一個(gè)層次模糊效果的容器組件

    基于React封裝一個(gè)層次模糊效果的容器組件

    這篇文章主要為大家詳細(xì)介紹了如何基于React封裝一個(gè)層次模糊效果的容器組件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03

最新評(píng)論

嘉黎县| 康保县| 固阳县| 汉沽区| 阿拉善左旗| 肇东市| 加查县| 垦利县| 新绛县| 芦山县| 绍兴县| 盐源县| 双辽市| 蒙自县| 云和县| 山阳县| 顺昌县| 乐山市| 南涧| 枣阳市| 博客| 平顶山市| 通道| 湘潭市| 蒲江县| 灵武市| 游戏| 苏尼特右旗| 临桂县| 比如县| 双峰县| 金阳县| 台北市| 游戏| 盐亭县| 奉新县| 来凤县| 顺昌县| 密云县| 广丰县| 额敏县|