В последнем посте мы рассмотрим, как организовывать наши компоненты и управлять ими, а также как назначать им разные классы для их стилизации. Но что происходит, когда у нас очень большой список продуктов?

JSON — это тип файла, который в основном состоит из массива объектов. С этим массивом мы можем делать циклы, отображать его или повторять.

Я создаю файл json с различными объектами животных.

// data.json
[
    {
        "image":"https://www.freepik.com/free-photo/head-tiger-sumatera-closeup-with-dark-blue-wall_17743607.htm#query=animals&position=2&from_view=search&track=sph",
        "name":"Tiger",
        "desc":"Feline",
        "feeding":"Carnivorous"

    },

    {
        "image":"https://www.freepik.com/free-photo/head-tiger-sumatera-closeup-with-dark-blue-wall_17743607.htm#query=animals&position=2&from_view=search&track=sph",
        "name":"Leopard",
        "desc":"Feline",
        "feeding":"Carnivorous"

    },

    {
        "image":"https://www.freepik.com/free-photo/head-tiger-sumatera-closeup-with-dark-blue-wall_17743607.htm#query=animals&position=2&from_view=search&track=sph",
        "name":"Frog",
        "desc":"Amphibian"
        "feeding":"Omnivorous"
    }
        "image":"https://img.freepik.com/free-photo/selective-focus-shot-red-squirrel-running-water-with-nut_181624-37522.jpg?w=1800&t=st=1670256384~exp=1670256984~hmac=fd801d595541cd40101bd1d5c4744947b593758e510dfc78b9e2597f0272aa6e",
        "name":"Squirrel",
        "desc":"Mammal",
        "feeding":"Herbivorous"
    },

    {
      
        "image":"https://www.freepik.com/free-photo/head-tiger-sumatera-closeup-with-dark-blue-wall_17743607.htm#query=animals&position=2&from_view=search&track=sph",
        "name":"Elephant",
        "desc":"Mammal",
        "feeding":"Herbivorous"
    }

]

С этой базой данных мы можем повторять ее и использовать каждую итерацию для извлечения данных для отображения информации.
Сценарий выглядит следующим образом…

// crating component 'animal.jsx'

import React from "react";

// if the parameter of a function is an object I can use {} and use only one attribute of that object
const AnimalCard = ({item}) => {   //{item} is equal to props[item]
  return (
    <div className="card cardAnimal">
      <img src={item.image} className=card-img-top" alt="..." />
      <div className="card-body">
        <h5 className="card-title">{item.name}</h5>
        <p className="card-text">{item.desc}</p>
        <a href="#" className="btn btn-primary">Go somewhere</a>
      </div>
    </div>
 )};

export default AnimalCard;
//home.jsx

import React from "react";
import data from "./data.json";
import AnimalCard from "./animal.jsx"

const Home = () => {
  
  const list = data.map((item)=>{ //each item is an object
    return <AnimalCard item={item}/>
  };

  return ( 
    <div className="text-center">
      <h1 className="text-center mt-5">List of Animals</h1>
        {list}
    </div>
  );
};

export default Home

Я надеюсь, что смогу помочь вам с вашей фронтенд-разработкой.
Если у вас есть какие-либо вопросы, вы можете написать мне.

Никогда не переставай учиться!