DEV Community

Discussion on: 5 tips to improve your React and JS code

Collapse
 
idanen profile image
Idan Entin

A better refactor of #5 would be to extract the logic to a custom hook.
That way it won't be coupled to the UserProfile component

Collapse
 
adancarrasco profile image
Adán Carrasco

Hi Idan, in this case the UserProfilePage component has the logic decoupled from the User component. The User component is a presentational component while your UserProfilePage holds the Business Logic, this follows Atomic Design. bradfrost.com/blog/post/atomic-web...
Please let me know if you think otherwise. :)

Collapse
 
idanen profile image
Idan Entin

The logic is decoupled, however not reusable.
So if you need the same logic in, say, Comments component, you'd need to write a CommentsPage.
You can avoid that by changing UserProfilePage to useUserProfile and have it return the user instead of JSX.
Small change, with large benefits