новый head of engineering топит за вуе. И там, вроде, новая версия вышла
Вот ссылка на статью про performance https://blog.vuejs.org/posts/vue-3.2.html
Как так? Не думал, что компилируемыи язык (свелт) сможет поиграть. Помогите найти аргументы за свелт в моей войне с head of engineering
Эван начал по стопам автора солида гнаться за циферками в бенчмарках, от чего уверенности в перформансе в реальных приложениях у меня лично нет
Свелт не проиграл, он не играл) + посмотрите на память + считайте что вью уже выжал максимум в то время когда свелт даже не начинал
И правильно делает. Vue на порядок развитей Svelte. Так то я могу недели за две написать фреймворк, который будет быстрее и Свелта и Вью и занимать меньше места и с более удобным синтаксисом. Только все компоненты к нему нужно будет писать с нуля, баги будут вылавливаться годами, а из-за отсутствия документации и примеров изучать фреймворк придется копаясь в исходниках. Готовы к такому? Свелт, надо отдать должное, перешагнул минимальную планку экосистемы для практического использования. Но Вью на порядок более развитый. И поэтому для сложных задач лучше приспособлен.
В чем развитость выражается кроме готовых библиотек компонентов и наличия нативных биндингов там, где в свелте прийдется использовать ванильный биндинг?
Присоединяюсь к вопросу
Мы сегодня получим ответ? Если будет ответ на наши вопросы - тегните меня. На сим я откланяюсь
Я с другой стороны зайду. Написали вы как кажется, правильный код. А он не работает. ( не так работает). Что делаете на Вью? Правильно. Гугл и через две минуты узнаете что это: глюк Вью или ваших кривых рук и как нужно было сделать правильно. Что делаете на Свелте? Ну а посмотреть на на Гитхабе количество репозиториев по Вью и Свелт можете сами.
на свелте ты просто страдаешь, потому что на свелте легко отламывается итерация по массиву
Это утверждение предполагает что я встретился с правильным кодом который не работает или работает не правильно. В то время как я за последние несколько месяцев работы встретился с двумя-тремя случаями которые редкие и которые keyed each(который мало кому нужен и легко заменяется)
Марк опять несет чушь про заменяемость keyed each, так и не смог понять доки
Ты хоть один пример не связанный с анимациями приведешь?
Даже в ангуляре есть ишьюсы, но в основном все ошибки во фреймворках это ошибки с js, конечно, могут быть ошибки с имплементацией встроенных инструментов/фич/сервисов фреймворка, но у свелта этого добра не так чтобы очень много) пока что во всяком случае.
По количеству репозиториев ничего не скажу, скорее всего у вью их больше, но сколько времени существует вью и сколько свелт ...
Ты понимаешь Свелт? Может, сможешь ответить как и когда Свелт запускает микротики? Какой механизм? Я не нашел. Даже на английском.
имеются ввиду микротаски ? Хз, не интересовался
Так в том и дело. Баги неизбежная часть производства ПО. И одно дело когда фреймворк распространен и и ссылок на баг дофига и советов как обойти тоже. Другое дело когда малораспространенный. И ты наедине с этим багом.
Да. Микротаски. Сори.
Микротаски
По-идее мы не должны об этом думать и фреймворк должен сам оптимизировать код (если вопрос про оптимизацию) и если случается утечка памяти, то либо имплементировано что-то неправильно (лечится доками и Гуд практис примерами), либо проблема во фреймворке (+1 ишью для разрабов фреймворка)
Ожидаемо)
Краткий ответ: Батчит все что видит Длинный ответ: Батчи~ит все~е что~о види~ит От кода зависит)
Методика определения?
Просто ссылка на репозитории при поиске
Может тут что полезное будет https://youtu.be/OEGZOGe-120
Спасибо. Посмотрю
как будто у нас в js есть куча спобов запустить микротаску) если быть точным их 2 и нет разница как это делается. в случае со свелт и vue там промисы
Через таймер еще может быть вариант. И гибридные.
любой реордер списка. на самом деле бага не приятная. просто @volodya11let перебарщивает
если речь про setTimeout, то это не микротаска
Речь была не о баге а о применимости keyed each в реальных задачах
любой список почти нужен ключ
Как свелт делает применение изменений состояний приложения? Директивно изнутри? по таймеру? по событию? По коммиту? Гибридно? Мне не понятно
да норм доклад получился в принципе. кажется удалось достаточно просто рассказать
доклад выше не плохой. микротаска используется только для одной цели - батчинг измененных состояний. тоже самое и в Vue. обще это называется асинхронные рендеринг. для сравнения: // React this.setState({ foo: 10, bar: 20, baz: 30 }); // update DOM after this call // Vue this.foo = 10; // should we update DOM after this call? seems not. this.bar = 20; this.baz = 30;
в целом он применяет изменнения в микротаске, а это означает что после того как текущая макротаска закончилась, непосредственно перед следующей
Спасибо! Немного встало на свои места. Как работает Вью немного представляю, там в основе комбинация коммитов и таймера. Насчет Свелта было подозрение что он директивно применяет какие-то изменения изнутри, но, видимо, все проще.
да там все супер просто устроено
в большинстве случаев реакт не будет обновлять дом как тут написано сразу, потому что в большинстве случаев сет стейт будет в эвент листенере а он батчится. В 18ом реакте всегда будет батчится
ну то есть после вызова setState DOM еще не обновленный?
в большинстве случаев да, даже this.state будет все еще старым. Об этом явно написано в доке
Сетстейт же вообще асинхронный, конечно дом старый будет.
ок, тогда как сделать: this.setState({ foo }); const foo = document.getElementById(‘foo’); ?
В юзэффекте, очевидно.
Обсуждают сегодня