Sobes.tech

Λήψη δεδομένων σχετικά με βιβλία και τους συγγραφείς τους. Εμφάνιση των δεδομένων σε μια σελιδοποιημένη λίστα με 10 βιβλία ανά σελίδα σε μορφή: <τίτλος βιβλίου> - <συγγραφέας> api: [link] προδιαγραφή: [link] αν το swagger δεν ανοίγει, στη ρίζα 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('[link]') .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>Φόρτωση...</p>} <ul> {currentBooks.map((book, index) => ( <li key={index}>{book.title} - {book.author}</li> ))} </ul> <div> <button disabled={page === 1} onClick={() => setPage(page - 1)}> Προηγούμενο </button> <button disabled={page === totalPage} onClick={() => setPage(page + 1)}> Επόμενο </button> </div> </div> ); } Διορθώστε τα σφάλματα και υλοποιήστε την σελιδοποιημένη εμφάνιση μιας λίστας βιβλίων με συγγραφείς.

188

Πείτε μας για την προηγούμενη εργασιακή σας εμπειρία και τις τεχνολογίες που χρησιμοποιήσατε.

160

Γιατί δεν χρησιμοποιήσατε το localForage ή κάποιο άλλο περιτύλιγμα πάνω από το IndexedDB;

142

Γιατί επιλέχθηκε το IndexedDB για την αποθήκευση προσχεδίων και της κατάστασης των σεναρίων αντί για το localStorage ή το sessionStorage;

128