Проверяет понимание различий между встроенным просмотром PDF в браузере и библиотеками типа React-PDF, а также критерии выбора подхода.
Браузеры имеют встроенный просмотрщик PDF, который открывается при переходе по ссылке на PDF-файл. Он прост и не требует кода, но его интерфейс и поведение нельзя изменить. Когда проект требует более глубокой интеграции PDF с веб-приложением, например, в React, используются библиотеки вроде React-PDF, которые оборачивают PDF.js и предоставляют React-компоненты.
Если задача — просто показать PDF-документ без дополнительных функций, встроенный просмотрщик — оптимальный выбор. Он быстрый, не требует загрузки библиотек и работает во всех современных браузерах. Например, ссылка на PDF-файл в документации или статический отчет.
React-PDF стоит применять, когда нужен контроль над отображением и взаимодействием. Вот типичные сценарии:
Простой пример использования React-PDF для отображения PDF с кастомной кнопкой навигации:
import { Document, Page } from 'react-pdf';
function PdfViewer({ file }) {
const [numPages, setNumPages] = useState(null);
const [pageNumber, setPageNumber] = useState(1);
function onDocumentLoadSuccess({ numPages }) {
setNumPages(numPages);
}
return (
<div>
<Document file={file} onLoadSuccess={onDocumentLoadSuccess}>
<Page pageNumber={pageNumber} />
</Document>
<button onClick={() => setPageNumber(pageNumber - 1)} disabled={pageNumber <= 1}>Prev</button>
<button onClick={() => setPageNumber(pageNumber + 1)} disabled={pageNumber >= numPages}>Next</button>
</div>
);
}Здесь мы полностью контролируем навигацию и можем добавить любые стили или логику.
Используйте встроенный просмотрщик для простых случаев, когда не нужна интеграция с приложением. Если требуется кастомизация, обработка событий или встраивание в React-компоненты, выбирайте React-PDF — он дает гибкость и контроль, хотя и требует дополнительных зависимостей и настройки.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию