Тонкий, швидкий фреймворк Svelte ставить JavaScript на дієту

Фреймворк видаляє абстракції, щоб створити ванільний JavaScript, який працює набагато швидше, особливо на мобільних пристроях

Хоча вже існує безліч фреймворків JavaScript, завжди, схоже, є місце для іншого, хто намагається надати щось нове. Введіть фреймворк Svelte, який фокусується на створенні програм для швидкості, перетворюючи їх у чистий ванільний JavaScript.

фреймворк

Svelte, доступний у версії 1.0.0, перетворює шаблони на безрамковий JavaScript. Розробники пишуть компоненти, використовуючи HTML, CSS та JavaScript; процес побудови Svelte компілює їх в окремі модулі JavaScript.

"Статичним аналізом шаблону компонента ми можемо переконатися, що браузер виконує якомога менше роботи", - сказав Річ Харріс, засновник Svelte та інтерактивний редактор у The Guardian. Додатки Svelte працюють швидше, ніж з інших фреймворків JavaScript, включаючи React, Vue, Angular та Ember.

Такі фреймворки, як React, вирішували проблему продуктивності того, як створювати багаті, складні програми, не створюючи "купу неможливого коду спагетті", сказав Гарріс. А співтовариство, що спеціалізується на програмуванні, відмовилося від старих ідей про поділ проблем та сприйняло компонентне мислення. Але це загрожувало користувачам.

"Існуючі фреймворки, як правило, є достатньо великими, щоб ваш додаток повільно запускався на мобільних телефонах, особливо на Android, де відбувається основна частина зростання ринку". Браузерам доводилося витрачати час на аналіз та оцінку JavaScript, протягом якого телефон не реагує, тоді для абстракцій фреймворку потрібна продуктивність. "Svelte вирішує ці проблеми, видаляючи ці абстракції. Наполеглива робота відбувається під час компіляції, а не під час виконання - вона випльовує високооптимізований низькорівневий код маніпуляції DOM, специфічний для вашого додатка."

Компілятор Svelte визначає, які функції використовує компонент, аналізуючи вихідний код. "Якщо функція не використовується, Svelte не включає код для неї", - сказав Гарріс. "У підсумку ви отримуєте саме те, що вам потрібно". Рамка також пропонує переваги в розбитті коду і підтримує такі можливості, як SVG та інкапсульований CSS.

Над Свелте ще багато роботи, - застерег Гарріс. Він повинен мати такі можливості, як рендеринг на стороні сервера, та бути інтегрованим із існуючими інструментами, і він хоче додати такі функції, як декларативні переклади.