4 ms·
Don't forget "functions that do totally normal things now need to be rewritten as a hook".
by technion 3y ago
Don't forget "functions that do totally normal things now need to be rewritten as a hook".
- paulddraper 3y agoIf you are writing functions that do totally normally things as hooks, you are indeed doing it wrong. Hooks are for stateful code.
- shortcake27 3y agoYeah I think that’s their point. People rewriting stateless functions as hooks because “hooks are cool” before they actually understand what they do. Easiest way I put it to my team was that in order to qualify as a hook, it must consume a hook.
- DanielHB 3y agothis is the single biggest problem with React hooks, people overusing useEffect: const [sortedValues, setSortedValues] = useState([]) useEffect(() => { setSortedValues(values.sort()) }, [values]) It is unfortunate that useEffect is too powerful of a escape hatch that people forget it IS a escape hatch and should be avoided To be honest I much prefer hooks than old class-based state manipulation, but it does require deeper understanding of the React, JS and state to get right.
- carbotaniuman 3y agoWhat's the actual solution for that? I've only used Vue and Solid where "computeds" functions fall out of how signals or reactivity work, not sure how it works in React-land. Do you just leave it as a plain function and rely on React calling on your component?
- 5Qn8mNbc2FNCiVV 3y agoIgnoring that sort mutates the initial array which is a bug in that example, you would just sort it in the function body. If the sort takes a lot of time or the array is big and you don't want to create garbage, you memoize it with useMemo.