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

React中映射一個(gè)嵌套數(shù)組實(shí)現(xiàn)demo

 更新時(shí)間:2022年12月13日 10:32:36   作者:Jovie  
這篇文章主要為大家介紹了React中映射一個(gè)嵌套數(shù)組實(shí)現(xiàn)demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

嵌套數(shù)組本質(zhì)上是一個(gè)數(shù)組的數(shù)組,你可以把它們想象成一個(gè)表格,或者一個(gè)二維網(wǎng)格。為了映射一個(gè)嵌套數(shù)組,你可以使用平面和映射數(shù)組函數(shù)的組合,或者使用映射中的映射。

你可能想使用哪種方法取決于你的情況,所以我將用一個(gè)例子來(lái)解釋。如果你的數(shù)據(jù)只是一個(gè)一維數(shù)組,你可以簡(jiǎn)單地使用一個(gè)普通的地圖,你可以通過(guò)這個(gè)教程查看。

平面+地圖

flat函數(shù)將我們的二維數(shù)組轉(zhuǎn)化為一維數(shù)組,然后我們可以簡(jiǎn)單地將其映射到上面以產(chǎn)生我們的組件。在這個(gè)例子中,我創(chuàng)建了一個(gè)簡(jiǎn)單的購(gòu)物清單,并將一些物品按食物類別分組:

const shoppingCart = [
    ['apple', 'banana', 'cherry'],
    ['eggs', 'milk'],
    ['carrots', 'onions'],
];

這里是我們組件的代碼:

function ShoppingListItem({ item }) {
    return <li className="bg-neutral-800 p-2 font-normal shadow">{item}</li>;
}
function ShoppingList() {
    return (
        <div className="flex h-screen w-screen items-center justify-center">
            <div className="flex flex-col items-start justify-center rounded bg-neutral-800 p-8 text-3xl font-bold text-white shadow">
                <h1 className="w-full border-b-8 pb-2">Shopping List</h1>
                <ul>
                    {shoppingCart.flat().map((item) => (
                        <ShoppingListItem key={item} item={item} />
                    ))}
                </ul>
            </div>
        </div>
    );
}

這就是我們的頁(yè)面的樣子。

相關(guān)的物品被分組了,但為了顯示它們,我們只想得到一個(gè)物品的列表。這種方法是最簡(jiǎn)單的方法,當(dāng)你的數(shù)據(jù)被分組在一起并不重要時(shí),這種方法很有用。代碼更短,但代價(jià)是簡(jiǎn)化了我們的數(shù)據(jù)結(jié)構(gòu)。另一個(gè)例子可能是像Instagram feed這樣的東西,你從不同的用戶那里得到帖子,然后把它們都放到一個(gè)feed中。

使用嵌套地圖

在很多情況下,你可能想保持你的嵌套數(shù)據(jù)的結(jié)構(gòu)。在這個(gè)例子中,我們將重構(gòu)我們的購(gòu)物清單,把我們的食物組放在一起:

function ShoppingListItem({ item, white }) {
    return (
        <div
            key={item}
            className={ //Just to have striped rows
                'rounded p-5 ' +
                (white
                    ? 'bg-neutral-700 text-white'
                    : 'bg-neutral-100 text-black')
            }>
            {item}
        </div>
    );
}
function ShoppingListRow({ items, white }) {
    return (
        <li className="flex gap-2">
            {items.map((item) => (
                <ShoppingListItem key={item} item={item} white={white} />
            ))}
        </li>
    );
}
function ShoppingListGrouped() {
    return (
        <div className="flex h-screen w-screen items-center justify-center">
            <div className="flex flex-col items-start justify-center gap-8 rounded bg-neutral-800 p-8 text-3xl font-bold text-white shadow">
                <h1 className="w-full border-b-8 pb-2">Shopping List</h1>
                <ul className="flex flex-col gap-2">
                    {shoppingCart.map((row, i) => {
                        return (
                            <ShoppingListRow
                                key={row.join()}
                                items={row}
                                white={i % 2 === 0}
                            />
                        );
                    })}
                </ul>
            </div>
        </div>
    );
}

為了保持代碼的整潔,我把它分解為一個(gè)購(gòu)物清單項(xiàng)目、一個(gè)購(gòu)物清單行和整個(gè)購(gòu)物清單的組件。我發(fā)現(xiàn)在這種情況下,這是一個(gè)非常好的方法,因?yàn)槟憧梢詮妮^小的、不太復(fù)雜的構(gòu)件中建立起你的組件。有了這種方法,問(wèn)題就從如何在一個(gè)地圖內(nèi)進(jìn)行映射,變成了如何在一個(gè)數(shù)組上進(jìn)行映射,并在兩種情況下進(jìn)行。

下面是我們的更漂亮的購(gòu)物清單的樣子。

現(xiàn)在,這些行不再是在一個(gè)大的列表中,而是被保存在不同的列表中,并使用了TailwindCSS的一些花哨的樣式,你可以在這里準(zhǔn)備更多的東西。這種方法在很多情況下都很有用,比如表格、網(wǎng)格等等。我們也可以很容易地用兩個(gè)地圖來(lái)寫(xiě)第一個(gè)例子,使用React Fragment,選擇權(quán)完全在你手中。

希望通過(guò)這兩個(gè)例子中的一個(gè),你能夠在你的場(chǎng)景中通過(guò)一個(gè)嵌套數(shù)組進(jìn)行映射,更多關(guān)于React映射嵌套數(shù)組的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • React實(shí)現(xiàn)復(fù)雜搜索表單的展開(kāi)收起功能

    React實(shí)現(xiàn)復(fù)雜搜索表單的展開(kāi)收起功能

    本節(jié)對(duì)于需要展開(kāi)收起效果的查詢表單進(jìn)行概述,主要涉及前端樣式知識(shí)。對(duì)React實(shí)現(xiàn)復(fù)雜搜索表單的展開(kāi)-收起功能感興趣的朋友一起看看吧
    2021-09-09
  • react中的watch監(jiān)視屬性-useEffect介紹

    react中的watch監(jiān)視屬性-useEffect介紹

    這篇文章主要介紹了react中的watch監(jiān)視屬性-useEffect使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • React反向代理與CSS模塊化的使用案例

    React反向代理與CSS模塊化的使用案例

    這篇文章主要介紹了React反向代理與CSS模塊化的使用案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • React插槽使用方法

    React插槽使用方法

    本文主要介紹了React插槽使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • React18中請(qǐng)求數(shù)據(jù)的官方姿勢(shì)適用其他框架

    React18中請(qǐng)求數(shù)據(jù)的官方姿勢(shì)適用其他框架

    這篇文章主要為大家介紹了官方回答在React18中請(qǐng)求數(shù)據(jù)的正確姿勢(shì)詳解,同樣也適用其他框架,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 使用React-Router時(shí)出現(xiàn)的錯(cuò)誤及解決

    使用React-Router時(shí)出現(xiàn)的錯(cuò)誤及解決

    這篇文章主要介紹了使用React-Router時(shí)出現(xiàn)的錯(cuò)誤及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • 在React中實(shí)現(xiàn)txt文本文件預(yù)覽的完整指南

    在React中實(shí)現(xiàn)txt文本文件預(yù)覽的完整指南

    在前端開(kāi)發(fā)中,從遠(yuǎn)程 URL 加載并預(yù)覽文本文件是一項(xiàng)實(shí)用且常見(jiàn)的功能,今天,我將帶你深入剖析一個(gè) React 組件 TextViewerURL,它通過(guò) URL 加載文本文件,支持多種編碼),并搭配精心設(shè)計(jì)的樣式,讓文本展示更美觀、交互更友好,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-03-03
  • React使用context進(jìn)行跨級(jí)組件數(shù)據(jù)傳遞

    React使用context進(jìn)行跨級(jí)組件數(shù)據(jù)傳遞

    這篇文章給大家介紹了React使用context進(jìn)行跨級(jí)組件數(shù)據(jù)傳遞的方法步驟,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)React context組件數(shù)據(jù)傳遞有一定的幫助,感興趣的小伙伴跟著小編一起來(lái)學(xué)習(xí)吧
    2024-01-01
  • React生命周期函數(shù)深入全面介紹

    React生命周期函數(shù)深入全面介紹

    生命周期函數(shù)指在某一時(shí)刻組件會(huì)自動(dòng)調(diào)用并執(zhí)行的函數(shù)。React每個(gè)類組件都包含生命周期方法,以便于在運(yùn)行過(guò)程中特定的階段執(zhí)行這些方法
    2022-09-09
  • React生命周期函數(shù)圖解介紹

    React生命周期函數(shù)圖解介紹

    生命周期函數(shù)指在某一時(shí)刻組件會(huì)自動(dòng)調(diào)用并執(zhí)行的函數(shù)。React每個(gè)類組件都包含生命周期方法,以便于在運(yùn)行過(guò)程中特定的階段執(zhí)行這些方法
    2022-11-11

最新評(píng)論

玛曲县| 赣榆县| 望谟县| 大城县| 麻城市| 安平县| 滨海县| 安丘市| 贺州市| 万年县| 南岸区| 丹巴县| 罗江县| 黔西县| 宣汉县| 贺州市| 鱼台县| 茂名市| 麻城市| 马公市| 贵南县| 南江县| 通榆县| 邮箱| 军事| 香河县| 临武县| 菏泽市| 阿拉善左旗| 万山特区| 叙永县| 平山县| 瑞丽市| 扎鲁特旗| 崇礼县| 黑山县| 巧家县| 沧源| 新邵县| 望奎县| 雷山县|