onBeforeRender() hook (.page.js)

通常,我们建议在 .page.server.js 中定义 onBeforeRender() hook 而非 .page.js 中。(在下面详细说明)

.page.js 中定义 onBeforeRender() 仅在使用客户端路由时有效

通常,我们 .page.server.js 中定义 onBeforeRender(),但是如果我们使用客户端路由,那么我们也可以在 .page.js 中定义 onBeforeRender()

当在 .page.server.js 中定义时,onBeforeRender() hook 仅在 Node.js 中加载和执行,而如果我们在 .page.js 中定义它,那么 onBeforeRender() 也会在浏览器中加载和执行:对于用户第一个访问的页面 onBeforeRender() 在 Node.js 中调用,而对于任何后续页面导航,onBeforeRender() 在浏览器中调用。

Examples:

建议

通常,我们建议在 .page.server.js 中定义 onBeforeRender() hook,因为编写仅在 Node.js 中运行的代码更容易。

也就是说,如果我们想要最小化对 Node.js 服务器的请求,那么可能需要在 .page.js 中定义我们的 onBeforeRender() hook。同时我们需要确保我们的 onBeforeRender() hook 是同构的:它需要能够在 Node.js 和浏览器中运行。

服务端路由

如果我们使用 Server Routing,我们不应该在 .page.js 中定义 onBeforeRender()(浏览器加载 onBeforeRender() 但从不调用它)。 我们应该始终在 .page.server.js 中定义 onBeforeRender()