<div className="App">
<h1 className={preloader.wrapper}>
<Preloader />
Hello CodeSandbox
</h1>
<h2 className={preloader.wrapper}>
<Preloader />
Start editing to see some magic happen!
</h2>
</div>
function Preloader({ Tag = 'h1', children }) {
return (
<Tag className={s.wrapper}>
<div className={s.preloader}></div>
{children}
</Tag>
);
}
<div className="App">
<Preloader>hello, world!!</Preloader>
<Preloader Tag="h2">fuck the world</Preloader>
</div>
<div className="App">
<Preloader>
<h1>
Hello CodeSandbox
</h1>
</Preloader>
<Preloader>
<h2>
Start editing to see some magic happen!
</h2>
</Preloader>
</div>
useLayoutEffect(() => {
const parent = ref.current.parentNode; // ref - корневой элемент
parent.classList.add(preloader.wrapper);
return () => {
parent.classList.remove(preloader.wrapper);
}
}, []);