Как стать автором
Обновить

Комментарии 31

То есть, если вы собираете приложение в Angular, а виджет построен в React, вам не удастся его интегрировать.

Да сфигали?
Придётся, конечно, грузить ангуляр вместе с реактом, что само по себе та еще боль из-за размера. Но интегрировать одно с другим никакой сложности не представляет.
Да даже и размер может быть терпимым — сам реакт в проде 12,5Кб. Ну, правда, ещё дом почти наверняка понадобится, это ещё 120.
В ангуляр встроить, что react, что vue большой проблемы нет, ибо ангуляр тоже работает с нативным DOM (на самом деле зависит от выбранного рендерера).
А вот встроить vue в react или наоборот — та еще боль. Лично решал проблему, когда vue виджет встроенный в приложение на реакт зависал — vue уходил в бесконечную рекурсию, из-за того что реакт примешал своей гадости в DOM, так еще и не догадался, что enumerable в таких случаях выключают.
Притом сейчас мигрирую проект с Vue на Svelte3 и реально нет никаких проблем, чтобы использовать из Vue компоненты Svelte и наоборот, со всеми пропсами и событиями (со слотами правда не заморачивался, ибо не надо)
Ну у реакта есть проблемы, да, из-за дурных моментов обработки vdom. К реакту даже вебкомпоненты так просто не привязываются (придётся немного оборачивать), что уж говорить.
Но в целом всё равно можно, хоть и немного более заковыристо, чем обычно.

Там нужно брал ref, создавать руками createElement(div) и уже на этот див вещать vue.

НЛО прилетело и опубликовало эту надпись здесь

Вы начнёте пользоваться компилятором вместо фреймворка и у вас не будет virtual dom. И реактивность настоящая, без кучи boilerplate-вотчеров. Если это не выглядит для вас ценным, то лучше vue, там сообщество больше и вакансий пока тоже больше.

НЛО прилетело и опубликовало эту надпись здесь

Архитектурно и идеологически, virtual dom — помеха всегда, потому что это костыль, причем не нужный костыль (просто раньше не смогли придумать, как сделать быстро без него).


Хороший пример "ненастоящей" реактивности" можно посмотреть в видео (19:00). Тем не менее, это всё же искусственный бенчмарк, если вас идеологически устраивает virtual dom и вы хорошо знаете vue, то серьезных причин переходить на svelte пока нет.


Если вы не знаете ни того, ни другого, но выбираете, то разница как между C# и visual basic (покажите мне проблему, которую нельзя решить на visual basic).


https://youtu.be/AdNJ3fydeao

Изи. Мне требовалось добавить стороннюю form в vuejs приложение и вызвать прикрепляемый там же метод. В итоге пришлось дергать внутренний метод рендеринига vuejs иначе данные формы просто не биндились и не передавались.

Э-э-э, а что мешало просто использовать хук mounted?

Оно потом изменяется на странице :) И должно бы попасть в другой кусок javascript которой ванильный. Внешняя система, там только через предварительный вызов тика рендеринга работало.

Ну так в чём проблема-то?

В том что через mounted не работает и нужно дергать рендеринг чтоб обновление прошло. Ну и во многих местах там "а вы так не делайте". По началу сильно бесило. Потому что в доке написано должно работать, а чуть дальше в доке написано ой мы не умеем обрабатывать вложенность :D


В третьей версии обещали пофиксить посмотрим получилось ли.

Емнип, эта штука изначально придумана человеком, пишущим для смарт-тв. А в них и железо не топовое далеко, и браузеры, мягко скажем, неторопливые.

Все бы хорошо, но svelte откровенно сырой и слабо документированный. Когда там уже релиз с нормальными доками и всем прочим?

Если дока изучается за 1 вечер — это не значит, что она слабая. Текущая дока покрывает 100% возможностей как фреймворка, так и его компилятора (со стороны обычного пользователя, но много ли народа идет пилить пулреквесты в используемые инструменты?).

Просто сравните с vuejs. И даже vuejs я не считаю хорошей докой. Там к примеру не хватает такой вещи как вообще собирать достаточно большое приложение и какой выбрать layout и почему. Этого кстати и в vuejs нет.
Не хватает целостного подхода.


Тоже самое касается роутера и прочего. Если будем брать svelte и другое то в другом есть хотя бы router и redux в каком-то виде. В случае svelte роутер есть но в зайчатках. redux? не видать. Но вы же можете интегировать нужный и удобный вам! Нууу могу только зачем? Хочется взять инструмент и пользоваться, а не заниматься подбором либ.

Роутеров хватает, на любой вкус и цвет. В реакте тоже нет единого роутера. А то что вью ограничивает меня только своим монстром, я бы скорее к минусам отнес.
Насчет редакса. У свелт есть управление состоянием из коробки. И ощущения от него просто прекрасные. Уже через месяц его использования я недоумевал, как я до этого мог пользоваться vuex, redux и mobx с их излишней сложностью. Но самое главное, сторы свелта — это всего лишь интерфейс (под который кстати неплохо вписываются обсерваблы), а значит Вы можете завернуть в него что угодно. И специально для любителей редакса — редакс уже завернули
А то что вью ограничивает меня только своим монстром, я бы скорее к минусам отнес.

Угу нет ничего веселее, чем в очередном проекте разбираться что там люди положили из роутеров :) Стандарты это хорошо.


У свелт есть управление состоянием из коробки. И ощущения от него просто прекрасные.

Там есть все та же проблема. Как это масштабировать? В vuex к примеру четко описано как. А тут? Плодить отдельный каталог и делать пачку store файлов?


Тоже в целом касается в том числе и vuejs. Как бы претензия сводится смотрите как у нас просто и быстро все делается! Ребят эт хорошо но мне надо сделать SPA приложение с 30 страницами, авторизацией и с 50 компонентами. Как мне структуру приложения то сделать? Как авторизацию прикручивать? Начинаешь смотреть интернет, а там каждый лепит на это случай свой велосипед. Ну емае. Ладно хоть router и store худо бедно договорились как делать.

Единый подход есть:
У Вас по файлу на каждую сущность (будто в редаксе здорового человека не так?), из которых Вы экспортируете множество сторов, каждый стор содержит атомарное значение.
Разногласия разве могут быть в том, как хранить множество однотипных сущностей, как Readable<Entity[]> или как Readable[] ибо это реально зависит от задачи.
Тоже в целом касается в том числе и vuejs
У Vuex для этого есть модули, а то что не все их используют, отнюдь проблема не vue

И кстати, combineReducers никак не спасет меня от конфликта имен экшенов, в отличии от модулей vuex или нативных es модулей в случае свелта

Ну я вот про модули и спрашиваю. В vuex про них вполне четко написано и более того описано как ходить в другие модули если надо. Что весьма хорошо. В документации svelte про это ни слова. Так же ни слова как организовывать дерево компонентов.


Этим кстати и болеет тот же vuejs он рассказывает сматри как я умею! Эм а как мне приложение то большое организовывать? Общая канва сводится как хочешь так и организуй. Это делает меня грустной пандой. Особенно после java где такие best pactics есть.

НЛО прилетело и опубликовало эту надпись здесь

Очень умно писать комментарии через 3 года :) Сейчас в svelte стало сильно лучше и с документацией и с инструментальными средствами чем это было 3 года назад. Ну и да с вам еще яснее. Потому что вместо того чтобы аргументировано что-то писать можно важно "ясно все с вами". Ну с вами еще яснее тогда.

Аргументация в стиле наших военкоматов — почему служить это круто!
web — это помойка технологий… клиенту ваще пофиг, что у вас там под капотом, лишь бы удобно было. Так что каждый волен выбирать сам — левая или правая :D. Мне вот правая больше нравиццо.

А как же разнообразие?

Да эта тема «что выбрать» уже замусолена до дыр: писать для себя — выбирай любое; писать для конторы — легаси никто переделывать не будет, а новое — где взять время на изучение.

Ну и остается заказчик, где и возможен вариант наткнуться на незнакомую штуку.

Избалован тайпскриптом, хочу чтобы я начал в шаблоне компонента печатать название переменной, а IDE мне ее подставила, потом нажал точку, и IDE вывалила мне все подходящие свойства и методы, а потом ругнулась, если я вставил переменную не того типа.


Судя по обсуждениям для svelte такое ооочень не скоро появится

Зарегистрируйтесь на Хабре , чтобы оставить комментарий