Readable из Writable
Предоставляйте потребителям только возможность чтения из доступного для записи хранилища
«Readable из Writable» — бесплатный урок Sveltejs Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Sveltejs Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Sveltejs Academy содержит 4 уроков всего.
Зачем предоставлять доступ только для чтения
Вам может понадобиться возможность внутренней записи при доступе потребителей только для чтения, чтобы предотвратить случайные изменения.
Шаблон
Сделайте записываемое хранилище закрытым, а экспортируйте объект только с методом subscribe.
const _user = writable(null);
export const user = { subscribe: _user.subscribe };
export function setUser(u) { _user.set(u); }Внешний путь изменения
Предоставьте явные функции для записи. Так все изменения будут проходить через одну точку входа.
Объединение с методами
Часто этот подход объединяют с шаблоном пользовательского хранилища: подписка и именованные методы действий.
Скройте реализацию
Потребителям не нужно знать, является ли источник записываемым, производным хранилищем или внешней системой.
Тестирование
Внутреннее записываемое хранилище можно заменить для тестов; потребителям это безразлично.
Реактивный потребитель
Компоненты используют $user как обычно.
<p>{$user?.name}</p>Подсказки TypeScript
Для ясности укажите тип экспортируемого объекта как Readable<T> из Svelte.
Несколько потребителей
Многие компоненты могут подписываться на хранилище; Svelte обработает всю служебную работу.
Объединение с проверкой
Проверяйте входные данные в функции установки перед передачей их внутреннему записываемому хранилищу.
Итоги: применение шаблона
Используйте этот подход всегда, когда у вас есть общее состояние, которое должно изменяться только определённым образом.
Быстрая проверка
Как преобразовать записываемое хранилище в хранилище только для чтения?
Резюме
Экспортируйте только subscribe из закрытого хранилища, доступного для записи, чтобы создать общедоступное хранилище только для чтения.
Часто задаваемые вопросы
Урок «Readable из Writable» бесплатный?
Да — полный текст урока «Readable из Writable» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Sveltejs Academy, подпишись на CoddyKit PRO. Курс Sveltejs Academy содержит 4 уроков всего.
Чему я научусь в уроке «Readable из Writable»?
Предоставляйте потребителям только возможность чтения из доступного для записи хранилища Ты практикуешь Sveltejs Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Sveltejs Academy?
Предыдущий опыт не требуется. Sveltejs Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Readable из Writable»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Sveltejs Academy?
Да. Каждый урок Sveltejs Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- derived() для вычисляемых хранилищ
- Шаблон пользовательского хранилища с subscribe/set/update
- Readable из Writable
- Контракты хранилищ и совместимость