-
-
Notifications
You must be signed in to change notification settings - Fork 121
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: add example of dynamic layout with static page #922
Conversation
you can see the time change as navigating the site which shows that the layout is indeed dynamic The rest of the home page stays unchanged and can be cached Example for dai-shi#885
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Skipped Deployment
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
path: '/foo', | ||
component: FooPage, | ||
}), | ||
]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about adding another route like /nested/bar
which has static layout and dynamic page?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added... there is weird behavior though
When I nav to /nested/bar then click the link to go back to home or foo, I get a white screen with no content. Is this a bug? Or did I make a mistake?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it happen both in DEV and PRD? Can be a bug.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wait, /nested/bar
still has a dynamic root layout?
I think we should make:
/foo
: static layout + dynamic page/nested/bar
: static layout + dynamic layout + static page
what do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it happen both in DEV and PRD? Can be a bug.
Yes it happens both
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
static layout + dynamic layout + static page
How do I make two layouts on a route?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/nested/_layout.tsx
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, I changed it. let me know if that's what you meant though. I'm not super confident with it yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks different. Okay, we may not need nested
. How about this?
createLayout({
render: 'static',
path: '/',
component: HomeLayout,
}),
createPage({
render: 'static',
path: '/',
component: HomePage,
}),
createLayout({
render: 'static',
path: '/foo',
component: FooLayout,
}),
createPage({
render: 'dynamic',
path: '/foo',
component: FooPage,
}),
createLayout({
render: 'dynamic',
path: '/bar',
component: BarLayout,
}),
createPage({
render: 'static',
path: '/bar',
component: BarPage,
}),
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, makes sense ! lgtm - changed
3b9dce5
to
5705f52
Compare
@dai-shi is your general experience with the _layout pattern positive? Or is it not something you use in practice very much? |
I'm not quite sure if my usage would be similar to everyone's. With fs-router, the root layout would be necessary, but in general, I wouldn't need to use other layouts unless I care performance much. There are a few things I would like to reconsider, and you can probably help on them:
|
all sounds good to me! I don't have immediate thoughts/ideas for how to approach changing those, but I'll be thinking about what makes sense for them. |
import BarLayout from './components/BarLayout'; | ||
import FooLayout from './components/FooLayout'; | ||
|
||
// The use of `lazy` is optional and you can use import statements too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we can remove this lazy usage from the examples.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see you merged it, should I make a second PR to remove this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, please go ahead. I mean from all examples.
you can see the time change as navigating the site which shows that the layout is indeed dynamic
The rest of the home page stays unchanged and can be cached
Example for #885