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