Контракты хранилищ и совместимость
Узнайте, что делает любой объект допустимым хранилищем Svelte, и используйте сторонние хранилища
«Контракты хранилищ и совместимость» — бесплатный урок Sveltejs Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Sveltejs Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Sveltejs Academy содержит 4 уроков всего.
Контракт
Любой объект, реализующий subscribe(fn) и возвращающий функцию отписки, является хранилищем Svelte.
Почему это важно
Благодаря простому контракту многие сторонние библиотеки можно использовать как хранилища Svelte без дополнительной настройки.
Наблюдаемые объекты RxJS
Метод подписки у наблюдаемого объекта RxJS совместим с этим интерфейсом, если немного его обернуть.
Атомарные библиотеки
Библиотеки вроде nanostores и zustand работают с адаптерами или напрямую.
Создание совместимых хранилищ
Для собственных хранилищ достаточно правильно реализовать подписку.
function myStore() {
let val = 0;
const subs = new Set();
return {
subscribe(fn) { fn(val); subs.add(fn); return () => subs.delete(fn); }
};
}Использование с $
Если подписка совместима, сокращённая запись $ работает автоматически.
Асинхронные источники
Колбэк подписки может вызываться в любое время, в том числе асинхронно, с новыми значениями.
Проверка равенства
Контракт не требует проверки равенства: Svelte вызывает подписчиков при каждом изменении.
Несколько подписчиков
Хранилище должно уведомлять всех текущих подписчиков. Используйте Set или Array.
Очистка
Возвращайте настоящую функцию очистки, которая удаляет подписчика. Иначе возникнет утечка.
Библиотеки для взаимодействия
Используйте библиотеки вроде svelte-rxjs или @nanostores/svelte, чтобы получить доступ к более развитым экосистемам.
Быстрая проверка
Что возвращает метод подписки?
Резюме
Хранилища — это просто объекты с методом подписки. Контракт упрощает взаимодействие с другими библиотеками.
Часто задаваемые вопросы
Урок «Контракты хранилищ и совместимость» бесплатный?
Да — полный текст урока «Контракты хранилищ и совместимость» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Sveltejs Academy, подпишись на CoddyKit PRO. Курс Sveltejs Academy содержит 4 уроков всего.
Чему я научусь в уроке «Контракты хранилищ и совместимость»?
Узнайте, что делает любой объект допустимым хранилищем Svelte, и используйте сторонние хранилища Ты практикуешь Sveltejs Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Sveltejs Academy?
Предыдущий опыт не требуется. Sveltejs Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Контракты хранилищ и совместимость»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Sveltejs Academy?
Да. Каждый урок Sveltejs Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- derived() для вычисляемых хранилищ
- Шаблон пользовательского хранилища с subscribe/set/update
- Readable из Writable
- Контракты хранилищ и совместимость