проблемы вроде замен атрибутов class= -> className= и for= -> htmlFor= вполне решаются регулярками... Хотя что со вью, что со свелт мне удалось просто научить верстальщика верстать сразу в компоненты, а с jsx это вызывает кучу проблем...
Больших преимуществ над ванила DOM вообще не вижу, да можно выплюнуть пачку vDOM и реакт все сам как то разрулит, но на деле борешься с тормозами из-за лишними перерендерами на каждый чих.
Ну и вот вроде простое - друг хорошего, и подход все есть пропсы (они заменяют и слоты, и события и еще кучу вещей), да только апдейт пропсов это опять тупой ререндер...
вью...
после реакта с его отвратительным DX оно реально как глоток свежего воздуха, но...
до недавнего времени было 2 типа слотов (scoped и не scoped), сейчас по сути объединили все как scoped, но старый код никуда не денешь.
сильная завязаность на свою инфраструктуру (vuex, vue-roater и т.д.), прикрутить что-то стороннее - боль и костыли
vuex - это отдельная песня, начиная с того, что бизнес логика не типизируется (typescript? можешь выкинуть если в проекте есть vuex, один фиг все скатится в any), а ведь это место где по идее должны быть бизнес логика
Система реактивности иногда преподносит неприятные сюрпризы. Начиная от своей непредсказуемости (можно писать так: this.field = value если field уже в системе реактивности, но если его там нет, то нужно писать Vue.set(this, 'field', value), хотя не всегда, есть кейсы где вью все таки сообразит, что ты от него хочешь), ну и если у тебя v-for который рендерит много чего нибудь из vuex, что меняется со временем (в частности удаляется из массива), то ты попал, тормоза не вылечить ничем, потому что отписка от ненужных зависимостей под капотом у вью выглядит примерно так:
for(const dep of depsForRemove) {
const i = allDeps.indexOf(dep);
if(i !== -1) allDeps.splice(i, 1);
}
Сами подумайте, какие могут быть тормоза, если массив из 200 элементов запросто генерит 80к подписок к vuex
svelte
главная претензия - сыроват, встречаются досадные баги... Сильно заметно, что его тестят только в продакшн компиляции и без ts... Ибо больше всего у меня проблем было именно с типами и с дев компиляцией...
и да, в сами компоненты ts не затащить никак, но вокруг прекрасно живет код на ts и это даже способствует делать UI слой тоньше
сторы - как по мне это вообще киллер фича свелта. Они гибки и изящны и в то же время весьма просты. А главное - это интерфейс, под который еще и rxjs почти подходит (если 1 next выдать в поток синхронно, то проблем нет, иначе чекай, что subscribe колбэк не был вызван). После них redux примитивен, mobx сильно замудрен и "magic", а vuex ущербен и избыточен
ну и вторая киллер фича как по мне - use:function - больше не надо парится, что ref может быть не отрендерен в определенные моменты времени, а значит можно сосредоточится на задаче, а не на борьбе с фреймворком и отслеживанием во-сколько v-if завернут твой ref
С хуками в реакте все покрасивше сейчас все-же)
Добавлю, что если свелтовских сторов недостаточно, то сверху идеально ложится effector
Обсуждают сегодня