Preact предоставляет возможность быстрого подключения без установки через npm, используя CDN. Основное преимущество такого подхода — мгновенное тестирование и прототипирование без настройки сборщика.
Для подключения базовой библиотеки используется тег
<script> с указанием URL на актуальную версию:
<script src="https://unpkg.com/preact@latest/dist/preact.min.js"></script>
В современных приложениях часто используют также пакет
preact/hooks для работы с хуками:
<script src="https://unpkg.com/preact@latest/hooks/dist/hooks.umd.js"></script>
Важно подключать скрипты в правильном порядке: сначала
preact, затем preact/hooks, если планируется
использование функциональных компонентов с хуками.
Использование CDN позволяет организовать проект без сложной сборки. Типичная структура может выглядеть так:
project/
│
├─ index.html
├─ main.js
└─ styles/
└─ style.css
Файл index.html содержит подключение CDN и собственный
скрипт:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Preact CDN Example</title>
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<div id="app"></div>
<script src="https://unpkg.com/preact@latest/dist/preact.min.js"></script>
<script src="https://unpkg.com/preact@latest/hooks/dist/hooks.umd.js"></script>
<script src="main.js"></script>
</body>
</html>
В main.js создаются компоненты и рендерится
приложение:
const { h, render } = preact;
const { useState } = preactHooks;
function Counter() {
const [count, setCount] = useState(0);
return h('div', null,
h('h1', null, `Счётчик: ${count}`),
h('button', { onClick: () => setCount(count + 1) }, 'Увеличить')
);
}
render(h(Counter), document.getElementById('app'));
Preact через CDN работает с обычными статическими файлами — CSS,
изображениями, шрифтами. Рекомендуется хранить их в отдельных папках
(styles, images, fonts) и
подключать через относительные пути:
<link rel="stylesheet" href="styles/style.css">
<img src="images/logo.png" alt="Logo">
Для корректной работы с изображениями внутри компонентов:
function Logo() {
return h('img', { src: 'images/logo.png', alt: 'Логотип' });
}
При использовании CDN важно помнить о кэшировании. Скрипты и стили, подключённые с CDN, часто кэшируются браузером, поэтому при обновлении версии необходимо корректно указывать новый URL или использовать query-параметры:
<script src="https://unpkg.com/preact@latest/dist/preact.min.js?version=10.6.5"></script>
CDN позволяет использовать как классовые, так и функциональные
компоненты. На практике чаще применяются функциональные компоненты с
хуками из preact/hooks, что упрощает управление
состоянием:
function TodoList() {
const [items, setItems] = useState(['Купить хлеб', 'Выучить Preact']);
const addItem = () => setItems([...items, 'Новая задача']);
return h('div', null,
h('ul', null, items.map(item => h('li', null, item))),
h('button', { onClick: addItem }, 'Добавить')
);
}
Использование CDN снижает нагрузку на сборку проекта, но при масштабных приложениях стоит учитывать:
integrity и crossorigin повышает безопасность
и стабильность:<script src="https://unpkg.com/preact@10.6.5/dist/preact.min.js"
integrity="sha384-xxxxxx"
crossorigin="anonymous"></script>
Такой подход обеспечивает лёгкую, быструю и наглядную работу с Preact без необходимости сложной сборки и конфигурации.