#hejto #hejtocontent #programowanie #makingofhejto


Dzień dobry!

Ostatnio w pracy debatowaliśmy nad pewnym problemem z formularzami - zdarzało się, że zaczynały mocno lagować, szczególnie wtedy, kiedy

a) w formularzu występowało wiele inputów,

b) zmiany na jednym inpucie wpływały na wartość w innym (np. zmiany w polu "Title" wpływały na wartości w polu "Id").


Stack jaki tam aktualnie mamy to Formik + Yup. Z uwagi na fakt, że problem ten był już wcześniej łatany z różnym skutkiem to teraz padła decyzja na zmianę biblioteki obsługującej formularze - nowy stack to react-hook-form + zod.


Ta sytuacja przypomniała mi, że na hejto również korzystamy z Formik + Yup – może więc i u nas przydałaby się zmiana?


Chciałbym zapytać się:
1. Programistów #webdev #frontend #react - czy macie jakieś doświadczenia/przemyślenia w tym temacie?
2. Wszystkich Użytkowników - czy zdarzyło się Wam zauważyć, że formularze na hejto czasem potrafią się przycinać albo działać wolniej? (o problemie w działaniu formularza dodawania komentarza, kiedy jest sporo komentarzy już wiem i jak to ogarnę to będzie o tym osobny wpis )

89db76cb-b196-482d-b48c-2cdde11fd419

Komentarze (19)

bori

@kris Gdzie jest @owczareknietrzymryjski gdy jest naprawdę potrzebny?

kris

@bori no właśnie, gdzie on jest

owczareknietrzymryjski

@kris @bori jestem w robocie. A tak serio to nie zauważyłem żeby się formularze muliły. Mulą się całe strony czasami jak jest od groma komentarzy (tak z 30+). Nie wiem czy ma to związek z tym ze formularze są ukrywane i pokazywane dopiero przy kliknięciu odpowiedz czy to jest inny problem.

57dc0b15-aeed-4b24-8049-469d294e0ca3
AdelbertVonBimberstein

@kris jeżeli masz uwagi co do funkcjonowania portalu proszę o kontakt na


[email protected]


Moja administracja zajmie się tym niezwłocznie.


Pozdrawiam

#nowywlascicielhejto

kris

@AdelbertVonBimberstein szefie, szef dziś pijany do roboty przyszedł?

Fen

@kris Skopiowało mu się raz za dużo! xD

entropy_

czy zdarzyło się Wam zauważyć, że formularze na hejto czasem potrafią się przycinać albo działać wolniej?

@kris Tak, w każdym wątku gdzie jest 100+ komentarzy, a o co chodzi? xD

bartek555

@kris jestem w szoku, ze nie potraficie tego naprawic. Przeciez wystarczy

serel

@bartek555 oprócz tego ludzie

onlystat

@bartek555 a poza tym ludzie

renkeri

@kris Z formik i react-hook-form nie korzystałem bardzo długo, ale z zod'a korzystam regularnie i jest super. Z takich swoich doświadczeń, to mi przy dużych formularzach pomagało wywalanie state skąd tylko się da. Kiedy każdy input ma swój state, to zaczyna to trochę mulić, a wszystko na dobrą sprawę w submit można wyciągnąć z FormData. Jeżeli chodzi o czyszczenie formularza, to przydaje się zmiana `key`, wtedy każdy input wraca do `defaultValue`. No ale wiem, że nie zawsze się tak da.

kris

@renkeri ja właśnie o zod też wiele dobrego słyszałem, na pewno lepiej waliduje url bo yup przy poprawnym (trochę dziwnym ale jednak poprawnym) linku wywalał błąd a zod go przepuszczał. Rzeczywiście modyfikacja stanu może wpływać negatywnie na performance, szczególnie jak stan jest zadeklarowany w parencie z wieloma childrenami (co może występować u nas właśnie przy dużej ilości komentarzy) - na pewno sprawdzę ten trop

lurker_z_internetu

Rozwalającą się składnie posta przy edycji byście naprawili. Cytat przeskakuje zawsze na kolejny akapit.

kris

@lurker_z_internetu podrzucisz jakieś screeny z przykładem niepoprawnego działania?

Catharsis

@kris No generalnie najprościej jest nie przechowywać niczego z formularza w React state, wtedy formularz nie laguje bo nie rerenderuje go całego przy każdym inpucie. Mantine w swoich formularzach ma np. opcje "uncontrolled mode" i dosłownie maja napisane: "Controlled mode is not recommended for large forms". Nie wiem jak to u was wygląda w tej bibliotece bo nigdy z niej nie korzystałem. Ogólnie nie jestem też jakimś expertem Reacta żeby nie było xD. https://mantine.dev/form/uncontrolled/

kris

@Catharsis co do formularzy z inputami w trybie uncontrolled - raczej ich do tej pory nie używałem a to głównie dlatego, że poniekąd wymuszały to biblioteki, z których korzystałem. react-hook-form jest pod tym względem trochę inny bo wewnętrznie właśnie obsługuje inputy jako "uncontrolled" przez co automatycznie ogranicza liczbę renderów ale przy tym ma metody na dobranie się do aktualnej wartości wypełnionego pola - chyba dlatego w moim osobistym rankingu wygrywwa z formikiem

Zaloguj się aby komentować