Шаблон пользовательского хранилища с subscribe/set/update
Создавайте хранилище с инкапсулированной логикой, предоставляя метод subscribe и пользовательские действия
«Шаблон пользовательского хранилища с subscribe/set/update» — бесплатный урок Sveltejs Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Sveltejs Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Sveltejs Academy содержит 4 уроков всего.
Контракт хранилища
Любой объект с методом subscribe(fn), возвращающим функцию отмены подписки, является допустимым хранилищем Svelte.
Обернуть записываемое хранилище
Создайте пользовательское хранилище, обернув записываемое хранилище и предоставив специализированный API.
function createCounter() {
const { subscribe, set, update } = writable(0);
return {
subscribe,
increment: () => update(n => n + 1),
reset: () => set(0)
};
}Использование
Экспортируйте экземпляр и используйте его как любое другое хранилище.
export const counter = createCounter();Использование в компоненте
Читайте значение с помощью $counter, вызывайте методы предметной области, например counter.increment().
Инкапсулированная логика
Внутренняя логика остаётся закрытой: предоставляются только выбранные вами методы.
Лучше глобальных переменных
Пользовательские хранилища можно тестировать и заменять, в отличие от разрозненных глобальных изменений.
Асинхронные методы
Методы могут быть асинхронными и вызывать set, когда данные готовы.
load: async () => set(await fetch("/api").then(r => r.json()))Безопасность типов
С помощью TypeScript укажите тип возвращаемой структуры, чтобы потребители получили полноценные подсказки IntelliSense.
Объединение с хранилищами
Пользовательское хранилище может внутренне зависеть от других хранилищ для получения производного состояния.
Одиночный экземпляр и фабрика
Решите, нужен ли вам один общий экземпляр или фабрика, создающая множество экземпляров.
Практический шаблон
Используйте этот подход для корзины, аутентификации, темы и других сущностей предметной области в приложении.
Быстрая проверка
Что делает объект допустимым хранилищем Svelte?
Итоги
Пользовательские хранилища оборачивают записываемое хранилище и предоставляют специализированные методы предметной области, сохраняя внутреннюю логику инкапсулированной.
Часто задаваемые вопросы
Урок «Шаблон пользовательского хранилища с subscribe/set/update» бесплатный?
Да — полный текст урока «Шаблон пользовательского хранилища с subscribe/set/update» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Sveltejs Academy, подпишись на CoddyKit PRO. Курс Sveltejs Academy содержит 4 уроков всего.
Чему я научусь в уроке «Шаблон пользовательского хранилища с subscribe/set/update»?
Создавайте хранилище с инкапсулированной логикой, предоставляя метод subscribe и пользовательские действия Ты практикуешь Sveltejs Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Sveltejs Academy?
Предыдущий опыт не требуется. Sveltejs Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Шаблон пользовательского хранилища с subscribe/set/update»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Sveltejs Academy?
Да. Каждый урок Sveltejs Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- derived() для вычисляемых хранилищ
- Шаблон пользовательского хранилища с subscribe/set/update
- Readable из Writable
- Контракты хранилищ и совместимость