Optimizing Loaders with Component Grouping
What about the Card
components, should we add the laoder for each card or how to handle this component.
When fetching data for individual <Card>
components, a potential issue arises - loading each card separately may cause a popping effect as they load in. This sudden visual change can be jarring for users.
To mitigate this problem, consider the following steps in the page.tsx
file.
Back to the Project
- Delete the
<Card>
components; - Delete the
fetchCardData()
function; - Import a new wrapper component called
<CardWrapper />
; - Import a new skeleton component called
<CardsSkeleton />
; - Wrap
<CardWrapper />
inSuspense
.
- Navigate to
app/ui/dashboard/cards.tsx
; - Import
fetchCardData()
; - Invoke
fetchCardData()
inside the<CardWrapper/>
component; - Uncomment necessary code.
In Practice
Thanks for your feedback!
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat
Can you explain why grouping the cards into a wrapper helps with the loading experience?
How does the Suspense component work with CardWrapper and CardsSkeleton?
What changes were made to the CardWrapper component to fetch and display the data?
Awesome!
Completion rate improved to 2.08
Optimizing Loaders with Component Grouping
Swipe to show menu
What about the Card
components, should we add the laoder for each card or how to handle this component.
When fetching data for individual <Card>
components, a potential issue arises - loading each card separately may cause a popping effect as they load in. This sudden visual change can be jarring for users.
To mitigate this problem, consider the following steps in the page.tsx
file.
Back to the Project
- Delete the
<Card>
components; - Delete the
fetchCardData()
function; - Import a new wrapper component called
<CardWrapper />
; - Import a new skeleton component called
<CardsSkeleton />
; - Wrap
<CardWrapper />
inSuspense
.
- Navigate to
app/ui/dashboard/cards.tsx
; - Import
fetchCardData()
; - Invoke
fetchCardData()
inside the<CardWrapper/>
component; - Uncomment necessary code.
In Practice
Thanks for your feedback!