import React, { useEffect } from "react"; import { SpinLoading } from "antd-mobile"; import styles from "./layout.module.scss"; interface LayoutProps { loading?: boolean; children?: React.ReactNode; header?: React.ReactNode; footer?: React.ReactNode; } const Layout: React.FC = ({ children, header, footer, loading = false, }) => { // 移动端100vh兼容 useEffect(() => { const setRealHeight = () => { document.documentElement.style.setProperty( "--real-vh", `${window.innerHeight * 0.01}px`, ); }; setRealHeight(); window.addEventListener("resize", setRealHeight); return () => window.removeEventListener("resize", setRealHeight); }, []); return (
{header &&
{header}
}
{loading ? (
加载中...
) : ( children )}
{footer && }
); }; export default Layout;