No comprendo bien el código de ListPost (miren los comentarios). Necesito una explicación paso a paso del código.
import { useState, useEffect } from "react"
import "../assets/css/componentes/card.css"
import { buscar } from "../api/api"
import { Link } from "react-router-dom"
const ListPosts = ({ url }) => {
    const [posts, setPosts] = useState([]) //aquí el usestate no lo comprendo bien, se guarda en un array post, setPost
    useEffect(() => {
        buscar(url, setPosts)
    }, [url]) // El useEffect qué hace exactamente? veo que retorna la llamada de la funcion buscar con parametros url y setpost, pero al final veo que pasa una array [url]
    
    return (
        <section className="posts container">
            {
               //En este método map supongo que recorre cada post del json y aquí se le hace la estructura visual, con la destructuracion de cada propiedad del json, y en el link en el prop se le llama /posts/id, es así?
                posts.map(post => {
                    const { id, title, metadescription, categoria } = post;
                    return <Link to={`/posts/${id}`} className={`post__card post-card--${categoria}`} key={id}>
                        <article >
                            <h3 className="post-card__title">
                                {title}
                            </h3>
                            <p className="post-card__meta">{metadescription}</p>
                        </article>
                    </Link>
                })
            }
        </section>
    )
}
export default ListPosts
Y en el Home lo único que hace es importa el componente ListPosts para agregarlo y pasa la prop url con /posts, supongo que hace referencia al post del json
<ListPosts url={'/posts'}/>
Y una duda extra, cuál es la diferencia de usestate y useeffect?
 
            