In functional components, the best way to force a re-render without changing actual state is by using useState with a dummy value (e.g., a counter or a boolean toggle).
Implementation:
import React, { useState } from "react";
const ForceRerender = () => {
  const [, forceUpdate] = useState(0); // Dummy state
  const handleForceRender = () => {
    forceUpdate((prev) => prev + 1); // Increment to trigger rerender
  };
  console.log("Component Rendered"); // Observe re-renders
  return (
    <div>
      <h2>Force Rerender Example</h2>
      <button onClick={handleForceRender}>Force Rerender</button>
    </div>
  );
};
export default ForceRerender;
Related Question: Optimizing re-rendering of React child components