Solid.js - преемник React? Мое впечатление.
Вставка
- Опубліковано 11 лип 2024
- В данном видео я делаюсь своим мнением о Solid.js после написания на нем небольшого проекта. Поговорим про то, как работает солид, каким образом он может эффективно обновлять ваш template. Обсудим плюсы, минусы и мое мнение о данной библиотеке.
Ссылка на Телеграмм канал:
telegram.me/ayub_begimkulov_c...
Примеры кода из видео:
github.com/Ayub-Begimkulov/yo...
00:00 - Интро
00:30 - Понимаем базу Solid.js
02:56 - Смотрим на пример в браузере
03:28 - Понимаем, во что компилятся компоненты в Solid
05:48 - Смотрим на эффективное обновление template
07:16 - Особенность атрибутов
08:01 - Смотрим на пример с Todo List
14:31 - Смотрим на Todo List в браузере
14:57 - Странное API у createStore
18:50 - Разница между createSignal и createStore
21:46 - Схожести React и Solid
22:54 - Плюсы
25:44 - К чему надо привыкнуть
26:24 - Минусы
30:24 - Заключение
Тоже хотел его опробовать, пока руки не дошли, крутая работа Ayub
Спасибо!
Пропсы можно делить с помощью встроенной утилиты splitProps. Еще есть классные функции:
1) batch - вызванные внутри сеттеры тригернут только один ререндер.
2) untrack - вызванные внутри сеттеры не будут тригерить ререндер
С пропсами видел эту возможность, но на выходе все равно объект будет, просто разделенный на части. А по поводу функций, мне untrack очень понравился. В реакте для этого дела приходится костыли с useRef использовать.
Посмотрел до 0:33, поставил на паузу и хочу сразу сказать, что Solid.js крутой фреймворк, спасибо за обзор!
Да, перспектива есть. Надо экосистему развивать.
🎉🎉🎉🎉🎉
В примере где todos как сигнал посмотрите условие на 35 строке. Это в т.ч. влияет на результат работы.
Давайте разберем Svelte?
Есть в планах. Думаю доберусь скоро)
Для пропсов же есть splitProps, mergeProps, которые как раз вроде бы и позволяют разделить или объединить пропсы без потери реактивности
Да, есть. Но это не деструктуризация же. На выходе будет все равно объект. Я скорее про это говорил.
тут проблем как раз не в разделении. а просто в том, что нужно писать someThing.someProp)
@@ayub_begimkulov кривотивность
обожаю Vue с его SFC и composition api, ни на что не променяю ) Прям глазам больно смотреть на смешивание html с js. Хотя и в нём тоже можно JSX использовать или рендер функции.
так это не html😂, в том и дело.
а в целом, это просто дело привычки, какие-то фреймворки делают строго шаблоны, какие-то используют jsx. это просто разный подход
@@knowledgedose1956 Я знаю, это такой синтаксис, который выглядит как js перемешанный с html :) С vue composition мне удобно переключатся на проекты на чистом js/ts и переиспользовать какой-то код между ними.
@@silkpelicanа как выучить vue подскажите пожалуйста, хочу с реакта перейти
@@cranberry888 Наверно попробовать сделать что-то простое, документация "get started", посмотреть видео как кто-то делает проектик небольшой, найти что-то на гитхабе и посмотреть как там сделано. Документация очень хорошая на мой взгляд.
Да можете сравнить на сколько озон, написанный на вью, работает быстрее, плавнее и отзывчивее яндекс маркета на реакте, которым пользоваться крайне неприятно. Вот вам и цена ререндера.
я бы все же вывод поставил в начало, дабы не тратить время на то что нет смысла использовать пока
так не надо нам замен, мы только вот реакт начали изучать
прЕемник
Ага, поправил! Спасибо!
Нужно понимать что все преимущества менее популярных фреймворков рано или поздно будут реализованы в тех же популярных и все. Они также стремительно развиваются а не стоят на месте , так что дело времени , но потыкать можно .
Тут зависит от самой технологии наверно, и команды. Любой "конкурент реакта" своим преимуществом ставит малый размер бандла, команда реакта не разу не сделал шаг в этом направлении. Так же как и развитие cra.
@@user-qe4hh6qq9u cra уже год не обновлялся
ага, только вот react dom production min js как был 40 килобайт так и остался, fine grained reactivity как не было так и нет.
Не совсем. Тут подходы полностью разные. Если реакт реализует преимущества sold - то это будет другой фреймворк.
@@ayub_begimkulov Обратное вашему утверждению можно считать есть, solid реализует тоже самое что react, только чуть другие правила(это со стороны разработчика, jsx, компонент= функция и тп). Проблема в том что реакт имеет огромное комьюнити и уже не способен на большие перемены(как было с хуками, сколько тогда хейта было). А мы так этого ждём)))
асинхронщина?
Ага, забыл про нее рассказать. Но в этом плане тут все очень похоже на React. Есть createEffect, который имеет почти идентичный механизм с useEffect.
Емае сделайте уже нормальный фрейм с двухсторонним биндингом примитивов и объедков, хватит уже этих хуков, либу в майнкрафт превратили 💩
Объедков?😂
@@knowledgedose1956 никогда не делали new Objecdk? 🤭
давай vue
Насколько круче fastify от самого Коллина чем express, который не поддерживает никто? Намного! А всё пишут на express и будут писать, всё знакомо и проверено.
Тут согласен, насколько бы реакт не был плох в сравнении с другими фреймворками(preact/solid - размер и скорость, svelte - простота) его все равно выбирают. Вопрос только, а кто выбирает? Если есть новый проект, команда опытная, хотят сделать хорошо и не важно комьюнити и "старые наработки" думаю что solid/svelte хороший выбор.
Про express в точку, хоть и половина "аудитории" это новички которые посмотрели 1 ролик на Ютубе и повторяют за автором(как и react). Наверно сейчас стабильность и удобство важнее скорости. Сколько примеров было когда "делаем высоконагруженный сервер, наш выбор python + java"
Тут согласен. Пока нету каких-то значимых проблем либо сильных улучшений - народ будет не охотно переходить. Но мне кажется дело еще не самой библиотеке, а еще и в экосистеме и простоте найма.