I am going to implement a special loading feature in my Next.js project. I think I can implement it using next/navigation or next/route but It was impossible for me. Let me explain it in detail.
Let's assume I am in home page and clicked a shop button to navigate it. At this time, I want to show the loading gif and when shop page loading finished, loading gif should be hide. How to do it? Please help me
#I am going to implement a special loading feature in my Next.js project.
11 messages · Page 1 of 1 (latest)
🔎 This post has been indexed in our web forum and will be seen by search engines so other users can find it outside Discord
🕵️ Your user profile is private by default and won't be visible to users outside Discord, if you want to be visible in the web forum you can add the "Public Profile" role in id:customize
✅ You can mark a message as the answer for your post with Right click -> Apps -> Mark Solution
(if you don't see the option, try refreshing Discord with Ctrl + R)
you can use the loading.js to create a loading effect while the page is loading. You can see it here: https://nextjs.org/docs/app/building-your-application/routing/loading-ui-and-streaming
Thanks for your reply. But I wan to add my own gif file.
yea, inside your loading.js you can write normal jsx. Inside your loading.js you can then write for example <Image src="src/to/your/loading.gif" /> to integrate your .gif
Let me explain it in detail.
Let's assume I am in home page. When I click a shop button to navigate it, I want to show the loading gif in home page for a while and when shop page loading finished, loading gif should be hide.
yea, I understood that and telling you, that you need to add a loading.js inside your route
Could you tell me in detail?
- Add this file (only with the blue dot): https://nextjs.org/_next/image?url=%2Fdocs%2Fdark%2Floading-special-file.png&w=1920&q=75
- Add your gif:
export default function Loading() {
// You can add any UI inside Loading, including a Skeleton.
return <Image src="src/to/your/loading.gif" />
}
- Done