{#key} для принудительного повторного отображения
Используйте блок key, чтобы уничтожать и заново создавать компоненты при изменении значения
«{#key} для принудительного повторного отображения» — бесплатный урок Sveltejs Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Sveltejs Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Sveltejs Academy содержит 4 уроков всего.
Блок key
{#key expr} уничтожает и заново создаёт своё содержимое при каждом изменении expr. Это полезно, когда требуется новый экземпляр компонента.
Перезапуск анимаций
Оберните анимируемый элемент в {#key}, чтобы повторно запускать переход при каждом изменении ключа.
{#key id}
<div in:fade>{message}</div>
{/key}Сброс состояния компонента
Оберните дочерний компонент с внутренним состоянием в {#key id}, чтобы полностью сбрасывать это состояние при изменении id.
{#key currentUser.id}
<UserProfile user={currentUser} />
{/key}Отличие от ключа в each
Блок {#key} задаёт ключ для одного элемента, а {#each ... (key)} — ключи для элементов списка.
Когда использовать
Используйте этот подход, когда нужно сбросить сложное внутреннее состояние без ручной очистки каждого поля.
Цена с точки зрения производительности
При каждом изменении ключа поддерево уничтожается и создаётся заново. Не оборачивайте большие деревья, если ключ меняется часто.
Закрывающий тег
Закройте блок с помощью {/key}.
Распространённые случаи использования
Перезапускать анимации, сбрасывать неуправляемые входные поля и принудительно выполнять новый запрос при переходе к другой сущности.
Альтернатива: bind:this
Иногда состояние можно сбросить императивно с помощью ссылки. {#key} обеспечивает более чистый способ декларативного сброса.
Сочетание с переходами
Сочетайте этот подход с переходами, чтобы создать плавный визуальный сигнал о принципиальном изменении.
Не используйте для незначительных изменений
Не оборачивайте чисто реактивное содержимое в {#key} — Svelte и так эффективно его обновляет.
Быстрая проверка
Что делает {#key x} при изменении x?
Итоги
{#key} принудительно полностью уничтожает и создаёт содержимое заново при изменении своего выражения, что полезно для сброса состояния и повторного запуска анимаций.
Часто задаваемые вопросы
Урок «{#key} для принудительного повторного отображения» бесплатный?
Да — полный текст урока «{#key} для принудительного повторного отображения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Sveltejs Academy, подпишись на CoddyKit PRO. Курс Sveltejs Academy содержит 4 уроков всего.
Чему я научусь в уроке «{#key} для принудительного повторного отображения»?
Используйте блок key, чтобы уничтожать и заново создавать компоненты при изменении значения Ты практикуешь Sveltejs Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Sveltejs Academy?
Предыдущий опыт не требуется. Sveltejs Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «{#key} для принудительного повторного отображения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Sveltejs Academy?
Да. Каждый урок Sveltejs Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- {#if} {#else if} {#else}
- {#each} с индексом и ключом
- {#key} для принудительного повторного отображения
- Вложенные {#each} и обновления по ключу