Альберт Базалеев @supercat1337
Пользователь
Информация
- В рейтинге
- 3 875-й
- Откуда
- Екатеринбург, Свердловская обл., Россия
- Зарегистрирован
- Активность
Специализация
Фронтенд разработчик, Фулстек разработчик
JavaScript
HTML
CSS
Node.js
PHP
Базы данных
Пользователь
Неплохо. Хотел спросить где подписки, потом увидел по ссылке )
С удовольствием посмотрел разбор. Спасибо. Было интересно.
В докладе, вроде как, юзается пример со старой версией effector'а. Говорят, что стало меньше бойлерплейта. А так, оба примера довольно многословны.
Вдруг кому-то интересно как можно было бы переписать этот код. Я, юзая свою библу, код с подобным функционалом реализовал бы так:
Hidden text
Можно и без классов. Код, который ближе к реатому:
Hidden text
Да, еще в примерах не хватает автоматической отмены fetch, как минимум. Примеры не боевые какие-то.
Еще можно дополнить то, что "неизвестные через черточку" теги не только валидны в HTML 5, а также отображаются со свойством css display: contents.
И это дает прикольный профит - такие теги можно использовать в качестве тегов-группировщиков, которые не влияют на отображение дочерних элементов. Удобно управлять вставленными в DOM document fragments.
Спасибо за ответ! Удачи в развитии :)
Мне кажется, что ошибаться - это вполне норм. И где бы вы ещё получили такую обратную связь и консультации от разных профи? Если кто-то не ошибается, значит тот не работает.
Даже если комментарии оказываются полезнее статьи, тоже ничего страшного. В этом случае статья становится триггером полезного контента от профи. А ты бы сидели знатоки и молчали.
В общем, удачи в творчестве) Не опускайте руки.
Уточню: получившуюся верстку вы в итоге используете в реакте/вью/иной библиотеке с поддержкой компонентов для последующего переиспользования?
Пиарят хорошо на медиуме и реддите, Ютюбе.
В итоге в каком формате храните компоненты? В основе верстки компонентов вы используете Bootstrap?
Все давно было предусмотрено. Все умеет. Добавил autorun, when, reaction.
https://stackblitz.com/edit/vitejs-vite-lygwhz?file=main.js&terminal=dev
Давайте я вам помогу лучше.Так будет нагляднее.
Bundle size
mobx (60.8 kB MINIFIED, 17.1 kB MINIFIED + GZIPPED)
Supercat Store (11.5 kB MINIFIED, 3.6 MINIFIED + GZIPPED)
Autorun
mobx
Supercat Store
Решение через строковый API
Решение через реактивные переменные
Reaction
mobx
Supercat Store
Решение через строковый API
Решение с помощью реактивных переменных
When
mobx
Supercat Store (четко структуированный код)
С помощью реактивных переменных
Как бы объяснить. Не все что меньше строк - лучше.
Посмотрев на код с использованием Supercat Store, программист, не знакомый с библиотекой, поймет что делает код. С ней легко начать работу даже новичку и потом контролировать что новичок написал.
По поводу использования реактивных переменных, очевидно, что работа с ними безопаснее работы с апи на строках. Цена удобства - 1 строка кода на каждую переменную. При этом объявление атома не является каким-то тяжким трудом. Библиотека типизирована. Редактор кода подскажет методы создания реактивных переменных и работы с ними. Реактивные переменные легко импортировать из других модулей, а также найти их референсы по всему проекту. Плюсов вагон и маленькая тележка.
Еще скажу, что архитектура, построенная с помощью явных подписок на конкретные реактивные переменные - это и есть ключ к написанию корректного кода, в нем невооруженным глазом виден принцип разделения ответственности.
И, самое главное, такой подход за счет атомарности и разделения ответственности дает возможность безопасно масштабировать код.
Можно и через атомы. Нет проблем.
https://stackblitz.com/edit/vitejs-vite-nkjk5v?file=main.js&terminal=dev
А то, что реакции явно указываются, так это хорошо. Это улучшает читаемость кода.
Да, конечно. Другое дело.
Вот мой ответ:
https://stackblitz.com/edit/vitejs-vite-u7mvue?file=main.js&terminal=dev
И кстати, мой код более читабельнее.
А when все-таки компьютед по духу.
Пока в комментариях видел только один пример с MobX, и то, всю красоту работы MobX спрятали во внешнюю функцию observer - адаптер для реакта.
Честно говоря, не понял причем тут обёртка методов и промисов. Оборачивают объекты и строят абстракции над объектами для того, чтобы добавлять функционал.
А что касается тех сигналов, то там пока Stage1. Говорить рано ещё о них.
Конечно, не надо! И когда в следующий раз увидите var, обязательно сообщите это читателям.
Разъясните противопоставление "агностик" и "для реакта нет реализации".
В публикации речь же идет о ядре. А адаптеры для фреймворков - все-таки отдельные проекты. Для реакта потом напишу. Там тоже будет одна функция.
Я знаю эту библиотеку. Но то, что указано выше - это биндинг данных к JSX реакта. Читайте как демонстрация работы внешней функции observer, а не то как библиотека работает с данными.
Если бы пример был более нативный, то тогда было бы интереснее сравнить.
В своем примере вы показали, как MobX прибит к реакту.
Да, все верно.