Svelte@5.56.0 новая фича

Микита Таранов30 мая 2026 г. в 02:13

Svelte@5.56,0 Новая фича {let/const ...} - более мощная альтернатива {@const ...}: 1. Можно объявлять где-угодно

{const hello = 'hello'} {hello}

{const hello = 'hi'} {hello}
{hello}
{hello}

  1. Само по себе объявление не реактивное, так что его можно сделать как $state, так и $derived

{#if editing} {let name = $state(user.name)} {const greeting = $derived(Hello ${name})}


{greeting}

<button onclick={() => { user.name = name; editing = false; }}>save {/if}

Также в доках добавили расчёт минимальных версий браузеров необходимых свелту

El Psy Kongroo30 мая 2026 г. в 02:17

Прикольно, но очень странно, особенно со стейтом. Не люблю мешать разметку с логикой

Misha Rodshtein30 мая 2026 г. в 02:30

Кайф!

Denis Chernov30 мая 2026 г. в 07:46

окей, не я проклял эту реальность

Misha Rodshtein30 мая 2026 г. в 09:07

А что не нравится в этом?

Denis Chernov30 мая 2026 г. в 09:07
Не люблю мешать разметку с логикой
Микита Таранов30 мая 2026 г. в 02:20

зато теперь сниппеты могут иметь свой стейт 😁

El Psy Kongroo30 мая 2026 г. в 02:38

Имеет смысл, но всё равно кажется костыльным немного и для этого будто другой механизм должен быть придуман 😁

Denis Chernov30 мая 2026 г. в 09:07

тут чисто моя позиция что шаблоны должны быть максимально тупыми, а все остальное выражается либо логикой, либо композицией

Misha Rodshtein30 мая 2026 г. в 09:22

Это неудобно. Когда много верстаешь это очень быстро становится понятно

Denis Chernov30 мая 2026 г. в 09:23

когда просто верстка там логики внутри шаблонов и не должно быть особо много а делить на компоненты - прям база, чтобы держать баланс логики в шаблонах

Misha Rodshtein30 мая 2026 г. в 09:24

Да нет, не база. Все зависит от ситуэйшн

Denis Chernov30 мая 2026 г. в 09:30

зато теперь script нужен только ради import-ов

Misha Rodshtein30 мая 2026 г. в 09:56

Ну нет, просто порой тебе нужно какие-то микро вычисления. И их не удобно выносить в скрипты

Gleb Winterson30 мая 2026 г. в 09:27

А в итоге получается старый синтаксис {@const …} deprecated будет?

Denis Chernov30 мая 2026 г. в 09:29

эм с чего это

Gleb Winterson30 мая 2026 г. в 09:30

А в чем смысл и то и то оставлять? Это же путать будет

Denis Chernov30 мая 2026 г. в 09:31

тебя же сейчас в script не путает что можно делать реактивные и нереактивные переменные

Gleb Winterson30 мая 2026 г. в 09:31

Не ну это да, но это другое)

Denis Chernov30 мая 2026 г. в 09:32

сорри, ты прав

Gleb Winterson30 мая 2026 г. в 09:32

Тогда хотя бы логично, а то просто была бы путаница

Denis Chernov30 мая 2026 г. в 09:33

да видимо breaking changes испугались и не хотели 6 апать из-за этого

Gleb Winterson30 мая 2026 г. в 09:33

Они отходят от {@ …} видимо понемногу

Denis Chernov30 мая 2026 г. в 09:33

да непонятно везде есть перфикс кроме let/const

Misha Rodshtein30 мая 2026 г. в 09:58

Наверное есть какой-то issue с рассуждением на эту тему

Denis Chernov30 мая 2026 г. в 09:58

да, было бы интересно почитать сейчас единственная догадка - уход от breaking changes с существующим @const

Misha Rodshtein30 мая 2026 г. в 10:00

Вот тут нужно почитать https://github.com/sveltejs/svelte/issues/16490

Denis Chernov30 мая 2026 г. в 10:02

кстати насчет этого в первом случае у нас идет последовательное вычисление и все ок а во втором мы плодим новые элементы в реактивном графе на каждый ререндер списка?

Микита Таранов30 мая 2026 г. в 13:13

Потому что это просто кусок JS, там нет никакой спец. трансформации

Антон Чаннов30 мая 2026 г. в 10:46

Через несколько лет так до jsx всё дойдёт

Denis Chernov30 мая 2026 г. в 10:53

тут ближе модель tsrx уже