Хуки внутри компонента могут располагаться везде, если последовательность их вызовов между рендерами постоянна. Ниже анти-пример, никогда так не пишите:
Библиотека привлекается меня несколькими критериями: малый вес, скорость работы, встроенный State Manager. Кстати, MobX может работать с SolidJS, но надо ли?..
Для работы с ней нужно лишь слегка изменить мышление из React-парадигмы "ререндеры + деструктуризация" в сторону "один рендер + чтение пропсов из объекта". Да, немаловажным является то, что компоненты SolidJS рендерятся только один раз - сразу отпадает необходимость в useMemo, useCallback, useRef. Несмотря на отсутствие хуков, жизненный цикл в каком-то виде присутствует, есть onMount и onCleanup (aka onUnmount). Эффекты тоже достаточно просто реализованы.
Хоть библиотек для него и мало, мне их оказалось достаточно, чтобы сделать несколько небольших проектов.
Сейчас начинается активно пиариться TanStack Start - альтернатива Next.js.
Нет, библиотека этого не требует.
Вам помогут "мутации": https://tanstack.com/query/latest/docs/framework/react/guides/mutations.
Хуки внутри компонента могут располагаться везде, если последовательность их вызовов между рендерами постоянна. Ниже анти-пример, никогда так не пишите:
А вот внутри submitHandler хуку не место.
Вот наивная реализация. Специально спрятал
useQuery
в массив, чтобы было чуть проще проводить параллели.Однако, вызов
showSuccess
иshowFailure
ошибочно соседствуют рядом с декларативным подходом react-query, у этого кода могут быть проблемы.Библиотека привлекается меня несколькими критериями: малый вес, скорость работы, встроенный State Manager. Кстати, MobX может работать с SolidJS, но надо ли?..
Для работы с ней нужно лишь слегка изменить мышление из React-парадигмы "ререндеры + деструктуризация" в сторону "один рендер + чтение пропсов из объекта". Да, немаловажным является то, что компоненты SolidJS рендерятся только один раз - сразу отпадает необходимость в useMemo, useCallback, useRef. Несмотря на отсутствие хуков, жизненный цикл в каком-то виде присутствует, есть onMount и onCleanup (aka onUnmount). Эффекты тоже достаточно просто реализованы.
Хоть библиотек для него и мало, мне их оказалось достаточно, чтобы сделать несколько небольших проектов.
flutter_solidart имеет схожий API.