<div id="root"></div>
const useViewport = () => {
const [width, setWidth] = React.useState(window.innerWidth);
React.useEffect(() => {
const handleWindowResize = () => setWidth(window.innerWidth);
window.addEventListener("resize", handleWindowResize);
return () => window.removeEventListener("resize", handleWindowResize);
}, []);
return {
width
};
};
const App = () => {
const viewPort = useViewport();
const isMobile = viewPort.width <= 1024;
if (isMobile) {
return <h1>Mobile layout</h1>
}
return (
<h1>Desktop layout</h1>
);
}
ReactDOM.render(<App />,
document.getElementById("root")
);
View Compiled
This Pen doesn't use any external CSS resources.