Sobes.tech

Frontend

Маълумотларни китоблар ва уларнинг муаллифлари ҳақида олинг. Маълумотларни ҳар саҳифада 10та китобдан иборат бўлган саҳифаланган рўйхатда кўрсатинг форматда: <китоб номи> - <муаллиф> api: [силка] спецификация: [силка] агар swagger очилмаса, sber-c55-books-mock-1.0.1-oas3.1-resolved.yaml асосида const PAGE_SIZE = 10; экспорт default функция App() { const [books, setBooks] = useState([]) const [page, setPage] = useState(1); const [loading, setLoading] = useState(false) useEffect(() => { setLoading(true); fetch('[силка]') .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

Дар бораи таҷрибаи кории пешина ва технологияҳое, ки истифода бурдаед, нақл кунед.

168

Чаро барои нигоҳ доштани нусхаҳои лоиҳаҳо ва ҳолати сценарияҳо IndexedDB интихоб шуд, на localStorage ё sessionStorage?

131