Open yuchi opened 5 years ago
In the following example the current implementation outputs very useless code for useAutoMemo and useAutoCallback, and potentially un-performant code for effects:
useAutoMemo
useAutoCallback
function MyComponent({ prop }) { const config = { a: prop }; return useAutoMemo(JSON.stringify(config)); }
The obvious reason is that config will always be different from the previous render. To “solve” it we need to wrap the object literal in useAutoMemo:
config
function MyComponent({ prop }) { const config = useAutoMemo({ a: prop }); return useAutoMemo(JSON.stringify(config)); }
The macros should at least warn about this borderline situation.
In the following example the current implementation outputs very useless code for
useAutoMemo
anduseAutoCallback
, and potentially un-performant code for effects:The obvious reason is that
config
will always be different from the previous render. To “solve” it we need to wrap the object literal inuseAutoMemo
:The macros should at least warn about this borderline situation.