0Pricing
Sveltejs Academy · Урок

{#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 — локальная установка не требуется.

Все уроки этого курса

  1. {#if} {#else if} {#else}
  2. {#each} с индексом и ключом
  3. {#key} для принудительного повторного отображения
  4. Вложенные {#each} и обновления по ключу
← Назад к Sveltejs Academy