Elder.js — это новый метафреймворк, основанный на Svelte. Что это дает?
Изящные приложения с 0kb клиентским JS
Svelte представил радикально новую идею, став фреймворком времени компиляции, что привело к созданию одностраничных приложений без фреймворка времени выполнения. Но хотя приложениям Svelte не требуется загружать фреймворк-скрипт (например, react.js
и vue.js
), они запускается как клиентский JavaScript-код.
Элдер сделал еще один шаг вперед, превратив приложения Svelte в серверные HTML и CSS и 0kb клиентский JavaScript . Это фантастика для производительности и предоставления небольших веб-вещей. Благодаря этому подходу Elder отличается от других мета-фреймворков, таких как Next.js, Nuxt.js и Sapper, которые только добавляют больше JS в ваши приложения поверх фреймворков, на которых они построены. Концепция SPA с нулевым JS по умолчанию постепенно набирает обороты. Next.js недавно добавил экспериментальную функцию «JS без выполнения» и появляются другие фреймворки, такие как Preact-based Microsite .
Прогрессивное улучшение с частичным увлажнением
0kb JS — отличная база. Но в конечном итоге вы захотите добавить в свой проект взаимодействие и логику на стороне клиента. Решение Элдера — частичная гидратация . Это причудливый способ сказать, что только определенные части веб-страницы становятся интерактивными после выполнения клиентского JS. У Elder есть декларативный подход к частичной гидратации с использованием атрибутов в компонентах динамической страницы для передачи свойств и параметров гидратации:
< стройная: голова >
< title > Моя веб-страница </ title >
</ стройный: голова >
< MyStaticComponent ssr-prop-a = { значение } />
< MyDynamicComponent
гидрат-клиент = {{
ssrPropA: значение,
clientPropB: value2
}}
гидрат-варианты = {{
загрузка: ленивый,
предварительная загрузка: правда
}}
/>
С этой стратегией ваше приложение включает JS на стороне клиента только после того, как вы используете гидратацию. А с вариантами гидратации вы сами решаете, когда загружаются пакеты JavaScript и когда начинается гидратация. Это тоже отличается от изоморфного подхода других метафреймворков. В изоморфных приложениях обслуживается отрисованная сервером HTML-страница, которая загружает сценарии в браузере, а затем повторно отображает и гидратирует всю страницу на стороне клиента. Гидратация — это тяжелая операция, выполняемая в основном потоке и тем самым блокирующая взаимодействие. Старейшина полностью избегает этой проблемы, используя умную частичную гидратацию.
Лично я давний поклонник прогрессивных улучшений . Частичное увлажнение идеально вписывается в эту стратегию, когда вы начинаете с надежной статической веб-страницы и постепенно ее улучшаете. Теперь мы могли доставлять статические веб-страницы задолго до изобретения фреймворков SPA и делать их интерактивными с помощью JS. Новым в Elder является то, что теперь вы можете начать с полностью статического сайта и постепенно улучшать его с помощью клиентского скрипта с использованием одной и той же платформы и языка программирования. Для меня это большой шаг, и я надеюсь, что больше фреймворков примут этот подход в будущем.
Юность Elder.js
На данный момент мы реализовали несколько проектов с использованием Elder. Он оправдывает ожидания того, что станет быстрой и экономичной структурой. Но поскольку он еще молод, мы также сталкиваемся с некоторыми причудами и ограничениями:
Ник Риз, создатель Elder, в подробном сообщении в блоге Ника на Elder.js подчеркивает, что Elder все еще находится в зачаточном состоянии. У него есть четкое представление о том, что нужно улучшить, и дорожная карта для этого. Поскольку Elder.js все еще молодой фреймворк, вы можете сыграть свою роль в его развитии. Я лично убедился, что Ник очень открыт для новых идей. Так что попробуйте Elder.js и примите участие!
Вы тоже любите Интернет?
Для нас это касается технологий и пользовательского опыта. Быстро, доступно для всех, приятно использовать. И строить весело. Таким образом наша команда объединяется, придерживаясь одних и тех же ценностей, чтобы обеспечить стабильный результат для больших и малых клиентов. Вам это подходит?
Присоединяйтесь к нашей команде