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()