Akilesh Rao’s Post

Directly manipulating the DOM in a React app is a problem. I recently saw someone append a toast directly to document.body in a React app and it rendered as [object Object]. The real issue wasn’t the syntax. It was the idea because in React, you’re not supposed to “touch” the DOM directly. React basically owns the DOM. It keeps a virtual copy of it (the virtual DOM), and every render, React diffs the changes and applies them efficiently. When you manually do something like... document.body.append(myDiv); ...you’re basically bypassing React’s control system. React has no idea that node exists. So next render, it might overwrite it, remove it, or just ignore it completely. That’s when you start seeing weird things happen: toasts that never disappear, duplicated elements, random layout shifts... Plus, you lose all of React’s benefits: - predictable UI - automatic cleanup - batched updates and memoization It’s fine if you’re integrating a non-React library (like a chart or a map), but in every other case, let React handle the DOM. That’s what it’s really good at. If you want to render something dynamically, do it declaratively by wrapping it in a context and render it via state. It’s cleaner, safer, and React stays in control. #ReactJS #FrontendDevelopment #WebDevelopment #JavaScript #ReactTips

  • No alternative text description for this image

To view or add a comment, sign in

Explore content categories