template.js

模板 (template) 文件与 布局 (layout) 类似,都会包裹每个子布局或页面。但与跨路由保持状态的布局不同,模板会在导航时为每个子元素创建新的实例。

export default function Template({ children }: { children: React.ReactNode }) {
  return <div>{children}</div>
}
template.js 特殊文件

虽然不常见,但在以下场景中您可能会选择模板而非布局:

  • 需要依赖 useEffect(如记录页面访问)和 useState(如每页反馈表单)的功能
  • 需要更改框架默认行为。例如,布局中的 Suspense 边界仅在首次加载布局时显示回退内容,而模板会在每次导航时都显示回退内容

属性

children (必填)

模板组件应接收并使用 children 属性。template 会渲染在 布局 (layout) 与其子元素之间。例如:

Output
<Layout>
  {/* 注意模板会被赋予唯一的 key */}
  <Template key={routeParam}>{children}</Template>
</Layout>

须知:

版本历史

版本变更
v13.0.0引入 template 功能

On this page