template.js
模板文件类似于布局,它包裹着布局或页面。与跨路由持久存在并保持状态的布局不同,模板被赋予唯一的键,这意味着子客户端组件会在导航时重置其状态。
app/template.tsx
export default function Template({ children }: { children: React.ReactNode }) {
return <div>{children}</div>
}


虽然不太常见,但如果您想要以下功能,您可以选择使用模板而不是布局
- 依赖于
useEffect
(例如,记录页面浏览量)和useState
(例如,每页反馈表单)的功能。 - 更改默认框架行为。例如,布局内的 Suspense Boundaries 仅在首次加载布局时显示回退,而不是在切换页面时。对于模板,每次导航都会显示回退。
Props
children
(必填)
Template 接受 children
prop。例如
输出
<Layout>
{/* Note that the template is automatically given a unique key. */}
<Template key={routeParam}>{children}</Template>
</Layout>
须知:
版本历史
版本 | 变更 |
---|---|
v13.0.0 | 引入 template 。 |
这是否有帮助?