В последнем посте мы рассмотрим, как организовывать наши компоненты и управлять ими, а также как назначать им разные классы для их стилизации. Но что происходит, когда у нас очень большой список продуктов?
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
Я надеюсь, что смогу помочь вам с вашей фронтенд-разработкой.
Если у вас есть какие-либо вопросы, вы можете написать мне.
Никогда не переставай учиться!