Пару недель назад вышла новая версия Svelte. Рич Харрис опубликовал статью с описанием новых возможности — "Svelte 3: Rethinking reactivity".
Самое большое нововведение в новой версии — реактивность переменных в компонентах. Это достигается благодаря тому, что Svelte — это не обычный фреймворк, а компилятор, который преобразует высокоуровневый код приложения в прямые манипуляции DOM-дерева и добавляет всю реактивность в код на выходе.
Вот простой пример компонента, который отображает на кнопке количество нажатий:
При компиляции хендлер превращается в такой код:
co
В общем, проект интересный. Взлетит ли он как Vue, пока непонятно. Но можно точно сказать, что выход новой версии ещё сильнее подогрел конкуренцию на рынке js-фреймворков.
#jsframeworks #svelte #reactivity
https://svelte.dev/blog/svelte-3-rethinking-reactivity
Самое большое нововведение в новой версии — реактивность переменных в компонентах. Это достигается благодаря тому, что Svelte — это не обычный фреймворк, а компилятор, который преобразует высокоуровневый код приложения в прямые манипуляции DOM-дерева и добавляет всю реактивность в код на выходе.
Вот простой пример компонента, который отображает на кнопке количество нажатий:
<script>
let count = 0;
function handleClick() {
count++
};
</script>
<button on:click={handleClick}>{count}</button>
При компиляции хендлер превращается в такой код:
co
unt++; $$invalidate('count', count);
Таким образом view, которое использует переменную count, обновится после вызова $$invalidate.В общем, проект интересный. Взлетит ли он как Vue, пока непонятно. Но можно точно сказать, что выход новой версии ещё сильнее подогрел конкуренцию на рынке js-фреймворков.
#jsframeworks #svelte #reactivity
https://svelte.dev/blog/svelte-3-rethinking-reactivity
svelte.dev
Svelte 3: Rethinking reactivity
It’s finally here
Райан Карниато — автор библиотеки Solid.js — написал статью о общих принципах работы точечной реактивности — "A Hands-on Introduction to Fine-Grained Reactivity".
Точечная реактивность (fine-grained reactivity) используется в MobX, Vue, Svelte, Knockout и Solid. Если объяснять совсем просто, то её суть сводится к выполнению реакций при изменении наблюдаемых значений. Точно также как меняется результат выполнения формулы в Excel при изменении ячеек, которые используются формулой. Если продолжать аналогию, то эти "ячейки" в разных библиотеках называются по-разному: Signals, Observables, Atoms, Subjects, Refs, — а "формулы": Reactions, Effects, Autoruns, Watches, Computeds.
В статье нет каких-либо деталей реализации, но её можно рекомендовать как хорошее введение в тему точечной реактивности.
#jsframeworks #reactivity #architecture
https://dev.to/ryansolid/a-hands-on-introduction-to-fine-grained-reactivity-3ndf
Точечная реактивность (fine-grained reactivity) используется в MobX, Vue, Svelte, Knockout и Solid. Если объяснять совсем просто, то её суть сводится к выполнению реакций при изменении наблюдаемых значений. Точно также как меняется результат выполнения формулы в Excel при изменении ячеек, которые используются формулой. Если продолжать аналогию, то эти "ячейки" в разных библиотеках называются по-разному: Signals, Observables, Atoms, Subjects, Refs, — а "формулы": Reactions, Effects, Autoruns, Watches, Computeds.
В статье нет каких-либо деталей реализации, но её можно рекомендовать как хорошее введение в тему точечной реактивности.
#jsframeworks #reactivity #architecture
https://dev.to/ryansolid/a-hands-on-introduction-to-fine-grained-reactivity-3ndf
DEV Community
A Hands-on Introduction to Fine-Grained Reactivity
Reactive Programming has existed for decades but it seems to come in and out of fashion. In...