useEffect driven development
Dažnas useEffect naudojimas logikoje.
useEffect(() => { if (selectedCell){ setFormData (prev => ({ ...prev, task: selectedCell.task, date: ${selectedYear}-${String(sel })); } else { setFormData({ name: task: hours: 0, date: new Date().toISOString().spli }); }, [selectedCell, selectedMonth, selected
Jei useEffect viduje turi setState - yra blogai. Turi būti tik vienas informacijos šaltinis.
Minusai
- sudėtingumas dėl SSOT (single source of truth) pažeidimo
- DAUG bereikalingų rerrenderinimo
- GOTO stiliaus logika
- priklausomybe su "gyvenimo ciklų" ReactJS
Sprendimai
- naudoti State manager
- cache, source of truth segregation
- react galime rašyti be useEffect