М
Монада Кедавра
@monada_kedavra1.6K подп.
4.2Kпросмотров
23 мая 2024 г.
📷 ФотоScore: 4.6K
React compiler проклинает mobx Все конечно уже успели обсудить анонс реакт-компилера, но одна вещь привлекла моё внимание: упоминание проверки на несовместимость библиотек Вернее, библиотеки При попытке поставить компилер в проект с мобиксом, react-compiler-healthcheck выдаст в cli сообщение о проблемах с пакетом. Мне стало интересно, каким образом компилер проверяет на совместимость, может находит импорты различных DON_NOT_USE_OR_YOU_WILL_BE_FIRED? Оказалось всё гораздо проще, есть чёрный список несовместимых библиотек. Чёрный список из одного пакета. Mobx. По моему, получить персональное проклятие от тимы реакта — это довольно почётно! Так что же послужило причиной персональных санкций в отношении проекта? Причина в хоке observer/useObserver. Этот метод работает оборачивая компонент в магическую сущность, которая автоматически определяет, какие обсерваблы используются в компоненте и вручную вызывает ререндер при их изменении. То есть, вместо того, чтобы сделать хук в духе useStore как все остальные стейт-менеджеры, в мобиксе решили сделать рационализацию и поставить всю концепцию реакта на бок. Очевидно, что тима реакта осталась от такой идеи не в восторге. Пакет оказался достаточно популярным, а эвристики компилера достаточно слабыми, чтобы получить единственный на всю экосистему персональный бан. Можно предположить, что в дальнейшем такая участь постигнет все проекты, которые захотят оборачивать реакт-компоненты во что-то магическое: либо оптимизации от реакта, либо от библиотеки, теперь вопрос поставлен ребром. Учитывая, что пока реакт компилер не имеет версии под swc и крупнейший проект экосистемы nextjs его использовать не будет, то есть время с этим что-то сделать Для мобикса это грозит полной сменой подхода к реакт-биндингам Но мне если честно сложно представить, что можно сделать в такой ситуации и как они будут выбираться из персонального бана даже если всё переделают как надо
4.2K
просмотров
1926
символов
Нет
эмодзи
Да
медиа

Другие посты @monada_kedavra

Все посты канала →
React compiler проклинает mobx Все конечно уже успели обсуди — @monada_kedavra | PostSniper