Нормальный там DSL. Как я понимаю - они делают его совместимым с HTML, поэтому у вас все условные блоки и циклы реализованы через директивы v-* в аттрибутах и строки, поэтому вы заварачиваете ваши компоненты в <template>, и поэтому вы пишите блочные элементы, даже если они пустые, как блочные элементы. Ну, то есть не <slot />, а <slot></slot> (хотя можно и так и так - компилятору без разницы, а вот линтер будет по умолчанию ругаться).
v-bind:href – это что?
Это директива, котрая привязывает вашу переменную к аттрибуту href и подписывает элемент на изменения значения этой переменной, если переменная реактивная (можно передать туда ref и он сам будет подставлять вам url.value из вашего рефа).
"url" – выглядит как текст, а на деле переменная
Да, но редактор вам подсветит это как код. Немного непривычно после JSX, но на мой взгляд так даже удобней будет. Как минимум писать условия и циклы приятней, чем в React, и выглядит это не настолько плохо, как в Solid с его специвльными компонентами для этих самых условий и циклов.
В этом смысле JSX выглядит немного привычнее.
Привыкайте к новому для вас языку и проблема решится сама собой :)
По ссылке в моём первом комментарии можете подробно почитать про Resumability и отличие её от гидрации. Но если совсем коротко: Меньше JS на клиенте (только то, что должно быть на клиенте чтобы интерактивные элементы работали), меньше кода исполняется (выполняется только код, который нужен в данный момент), ленивая загрузка кусков вашего приложения (раньше они делали это через service worker, а теперь через modulepreload). Ну а скорость - это проблема решаемая. Кроме того чтобы понять, почему бенчмарк такие результаты показывает, нужно понимать, как он реализован, а ещё обновлять фреймворки до актуальных версий, например
React тоже можно использовать без сборок, npm и прочего: Просто импортируете его из какого-нибудь esm.sh в обычном JS-модуле и используете: https://codepen.io/octet-stream/pen/EaVjVmK У вас не будет JSX - придётся вручную вызывать createElement, но так тоже можно. Другое дело что, а нужно ли? Равно как и с Vue - намного удобней использовать его со всеми этими инструментами.
vue reactive state доступен из коробки, ничего ставить не надо
Опять же, useState, useReducer и createContext доступны из коробки, ничего ставить не нужно. Для простых приложений должно быть достаточно. Работает даже без препроцессоров (ссылка на codepen выше в моём комментарии).
Только вот это не фича V8 (как заявлено выше), а конкретно Node.js, и поддерживает она только strip (который просто заменяет все ваши типы пробелами и не поддерживает все фичи TS) и transform (под отдельным флагом) режимы, без проверки самих типов (это всё ещё делает tsc). В стандарте ещё ничего нет, но есть разные предложения (например https://github.com/tc39/proposal-type-annotations), соответственно, никакой поддержки в движках нет.
Асинхронные функции удобные, зачем от них отказываться? А что там под капотом транспайлера происходит — без разницы. Когда нода начнёт поддерживать всё это дело без флага, можно будет просто убрать компиляцию и пользоваться уже нативно. При этом не придётся переписывать код, чтобы работать уже с асинхронными функциями.
Рано вы про нативную имплементацию заговорили. Нода 7й версии ещё только релизнулась, да и поддержка асинхронных функций работает пока только с флагом.
Генераторы были сделаны для того, чтобы упростить написание итераторов. Просто они оказались нужнее в другом месте.
Асинхронные функции пока что всё равно реализуются через них. Не вижу ничего плохого.
Разница между ними в основном в том, что на Koa можно писать асинхронный код в синхронном стиле, используя генераторы или асинхронные функции (начиная со второй ветки).
Ну и ещё Koa — это больше connect, нежели express.
Нормальный там DSL. Как я понимаю - они делают его совместимым с HTML, поэтому у вас все условные блоки и циклы реализованы через директивы
v-*
в аттрибутах и строки, поэтому вы заварачиваете ваши компоненты в<template>
, и поэтому вы пишите блочные элементы, даже если они пустые, как блочные элементы. Ну, то есть не<slot />
, а<slot></slot>
(хотя можно и так и так - компилятору без разницы, а вот линтер будет по умолчанию ругаться).Это директива, котрая привязывает вашу переменную к аттрибуту href и подписывает элемент на изменения значения этой переменной, если переменная реактивная (можно передать туда ref и он сам будет подставлять вам
url.value
из вашего рефа).Да, но редактор вам подсветит это как код.
Немного непривычно после JSX, но на мой взгляд так даже удобней будет. Как минимум писать условия и циклы приятней, чем в React, и выглядит это не настолько плохо, как в Solid с его специвльными компонентами для этих самых условий и циклов.
Привыкайте к новому для вас языку и проблема решится сама собой :)
По ссылке в моём первом комментарии можете подробно почитать про Resumability и отличие её от гидрации. Но если совсем коротко: Меньше JS на клиенте (только то, что должно быть на клиенте чтобы интерактивные элементы работали), меньше кода исполняется (выполняется только код, который нужен в данный момент), ленивая загрузка кусков вашего приложения (раньше они делали это через service worker, а теперь через modulepreload). Ну а скорость - это проблема решаемая. Кроме того чтобы понять, почему бенчмарк такие результаты показывает, нужно понимать, как он реализован,
а ещё обновлять фреймворки до актуальных версий, напримерReact тоже можно использовать без сборок, npm и прочего: Просто импортируете его из какого-нибудь esm.sh в обычном JS-модуле и используете: https://codepen.io/octet-stream/pen/EaVjVmK
У вас не будет JSX - придётся вручную вызывать createElement, но так тоже можно. Другое дело что, а нужно ли? Равно как и с Vue - намного удобней использовать его со всеми этими инструментами.
Опять же, useState, useReducer и createContext доступны из коробки, ничего ставить не нужно. Для простых приложений должно быть достаточно. Работает даже без препроцессоров (ссылка на codepen выше в моём комментарии).
Например, на Qwik (но только для SSR приложений). Отличие которого в том что у него нет гидрации, но при этом он тоже похож на React, как и Solid.
Только вот это не фича V8 (как заявлено выше), а конкретно Node.js, и поддерживает она только strip (который просто заменяет все ваши типы пробелами и не поддерживает все фичи TS) и transform (под отдельным флагом) режимы, без проверки самих типов (это всё ещё делает tsc). В стандарте ещё ничего нет, но есть разные предложения (например https://github.com/tc39/proposal-type-annotations), соответственно, никакой поддержки в движках нет.
А как это оценивать? В одном проекте может понадобиться использовать все три подхода.
Приватные репо в ленте активность просто не отображаются. Только упоминаются.
Да, но их можно написать и самому.
Наверняка есть и сторонние решения :)
А вы про какой babylon?
Асинхронные функции удобные, зачем от них отказываться? А что там под капотом транспайлера происходит — без разницы. Когда нода начнёт поддерживать всё это дело без флага, можно будет просто убрать компиляцию и пользоваться уже нативно. При этом не придётся переписывать код, чтобы работать уже с асинхронными функциями.
Рано вы про нативную имплементацию заговорили. Нода 7й версии ещё только релизнулась, да и поддержка асинхронных функций работает пока только с флагом.
Генераторы были сделаны для того, чтобы упростить написание итераторов. Просто они оказались нужнее в другом месте.
Асинхронные функции пока что всё равно реализуются через них. Не вижу ничего плохого.
Ну и ещё Koa — это больше connect, нежели express.