Comments 31
То есть, если вы собираете приложение в Angular, а виджет построен в React, вам не удастся его интегрировать.
Да сфигали?
Придётся, конечно, грузить ангуляр вместе с реактом, что само по себе та еще боль из-за размера. Но интегрировать одно с другим никакой сложности не представляет.
А вот встроить vue в react или наоборот — та еще боль. Лично решал проблему, когда vue виджет встроенный в приложение на реакт зависал — vue уходил в бесконечную рекурсию, из-за того что реакт примешал своей гадости в DOM, так еще и не догадался, что enumerable в таких случаях выключают.
Притом сейчас мигрирую проект с Vue на Svelte3 и реально нет никаких проблем, чтобы использовать из Vue компоненты Svelte и наоборот, со всеми пропсами и событиями (со слотами правда не заморачивался, ибо не надо)
Но в целом всё равно можно, хоть и немного более заковыристо, чем обычно.
Там нужно брал ref, создавать руками createElement(div) и уже на этот див вещать vue.
т9 подставил… Вот пример кода https://github.com/cultureamp/react-elm-components/blob/master/index.js#L19 Это проблема не только vue
Почему стоит использовать Svelte для своих веб-проектов
Вы начнёте пользоваться компилятором вместо фреймворка и у вас не будет virtual dom. И реактивность настоящая, без кучи boilerplate-вотчеров. Если это не выглядит для вас ценным, то лучше vue, там сообщество больше и вакансий пока тоже больше.
Архитектурно и идеологически, virtual dom — помеха всегда, потому что это костыль, причем не нужный костыль (просто раньше не смогли придумать, как сделать быстро без него).
Хороший пример "ненастоящей" реактивности" можно посмотреть в видео (19:00). Тем не менее, это всё же искусственный бенчмарк, если вас идеологически устраивает virtual dom и вы хорошо знаете vue, то серьезных причин переходить на svelte пока нет.
Если вы не знаете ни того, ни другого, но выбираете, то разница как между C# и visual basic (покажите мне проблему, которую нельзя решить на visual basic).
Изи. Мне требовалось добавить стороннюю form в vuejs приложение и вызвать прикрепляемый там же метод. В итоге пришлось дергать внутренний метод рендеринига vuejs иначе данные формы просто не биндились и не передавались.
Оно потом изменяется на странице :) И должно бы попасть в другой кусок javascript которой ванильный. Внешняя система, там только через предварительный вызов тика рендеринга работало.
Ну так в чём проблема-то?
В том что через mounted не работает и нужно дергать рендеринг чтоб обновление прошло. Ну и во многих местах там "а вы так не делайте". По началу сильно бесило. Потому что в доке написано должно работать, а чуть дальше в доке написано ой мы не умеем обрабатывать вложенность :D
В третьей версии обещали пофиксить посмотрим получилось ли.
Емнип, эта штука изначально придумана человеком, пишущим для смарт-тв. А в них и железо не топовое далеко, и браузеры, мягко скажем, неторопливые.
Все бы хорошо, но svelte откровенно сырой и слабо документированный. Когда там уже релиз с нормальными доками и всем прочим?
Просто сравните с 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 года назад. Ну и да с вам еще яснее. Потому что вместо того чтобы аргументировано что-то писать можно важно "ясно все с вами". Ну с вами еще яснее тогда.
Избалован тайпскриптом, хочу чтобы я начал в шаблоне компонента печатать название переменной, а IDE мне ее подставила, потом нажал точку, и IDE вывалила мне все подходящие свойства и методы, а потом ругнулась, если я вставил переменную не того типа.
Судя по обсуждениям для svelte такое ооочень не скоро появится
Почему стоит использовать Svelte для своих веб-проектов