<ClerkLoading>
The <ClerkLoading>
renders its children while Clerk is loading, and is helpful for showing a custom loading state.
Usage
import { ClerkProvider, ClerkLoaded, ClerkLoading } from '@clerk/nextjs'
import './globals.css';
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<ClerkProvider>
<html lang="en">
<body>
<ClerkLoading>
<div>Clerk is loading...</div>
</ClerkLoading>
<ClerkLoaded>
{children}
</ClerkLoaded>
</body>
</html>
</ClerkProvider>
)
}
import "@/styles/globals.css";
import { ClerkLoaded, ClerkLoading, ClerkProvider } from "@clerk/nextjs";
import { AppProps } from "next/app";
function MyApp({ Component, pageProps }: AppProps) {
return (
<ClerkProvider {...pageProps}>
<ClerkLoading>
<div>Clerk is loading</div>
</ClerkLoading>
<ClerkLoaded>
<Component {...pageProps} />
</ClerkLoaded>
</ClerkProvider>
);
}
export default MyApp;
import { ClerkLoaded, ClerkLoading, ClerkProvider } from '@clerk/clerk-react';
function App() {
return (
<ClerkProvider publishableKey={`YOUR_PUBLISHABLE_KEY`}>
<ClerkLoading>
<div>Clerk is loading</div>
</ClerkLoading>
<ClerkLoaded>
<Page />
</ClerkLoaded>
<div>This div is always visible</div>
</ClerkProvider>
);
}
function Page() {
return <div>The content</div>;
}
export default App;
import { ClerkLoading } from "@clerk/remix";
export default function Index() {
return (
<div>
<ClerkLoading>
<div>Clerk is loading</div>
</ClerkLoading>
</div>
);
}
Feedback
Last updated on