¿Qué es FunctionExpression y FunctionDeclaration? ¿En qué se diferencian principalmente?
Frontend
Obtener datos sobre libros y sus autores. Mostrar los datos en una lista paginada de 10 libros por página en formato: <título del libro> - <autor> api: [enlace] especificación: [enlace] si no se abre swagger, en la raíz sber-c55-books-mock-1.0.1-oas3.1-resolved.yaml const PAGE_SIZE = 10; export default function App() { const [books, setBooks] = useState([]) const [page, setPage] = useState(1); const [loading, setLoading] = useState(false) useEffect(() => { setLoading(true); fetch('[enlace]') .then((res) => res.json()) .then((data) => { setBooks(data); setLoading(false); }) .catch(() => setLoading(false)); }, [page]); const totalPage = Math.ceil(books.length / PAGE_SIZE); const start = (page - 1) * PAGE_SIZE; const currentBooks = books.slice(start, start + PAGE_SIZE); return ( <div className="App"> {loading && <p>Cargando...</p>} <ul> {currentBooks.map((book, index) => ( <li key={index}>{book.title} - {book.author}</li> ))} </ul> <div> <button disabled={page === 1} onClick={() => setPage(page - 1)}> Anterior </button> <button disabled={page === totalPage} onClick={() => setPage(page + 1)}> Siguiente </button> </div> </div> ); } Corrige errores y implementa la visualización de una lista paginada de libros con autores.
Cuéntenos sobre su experiencia laboral previa y las tecnologías que utilizó.
¿Por qué no usaron localForage u otra envoltura sobre IndexedDB?
¿Cuáles son las limitaciones de tamaño de memoria en IndexedDB y de qué dependen?
¿Por qué se eligió IndexedDB para almacenar borradores y el estado de los scripts en lugar de localStorage o sessionStorage?