在某些场景下,应用需要在渲染前执行预处理操作。Modern.js 推荐使用 Runtime 插件 (Runtime Plugin) 来实现这类逻辑。
在项目 src/modern.runtime.ts 文件中注册插件:
通过 onBeforeRender 钩子的 context 参数,可以向应用注入全局数据。应用的组件可以通过 useRuntimeContext Hook 访问这些数据。
此功能在以下场景中特别有用:
定义数据注入插件
在组件中使用注入的数据
结合 SSR 使用
在 SSR 场景下,浏览器端可以获取服务端渲染期间通过 onBeforeRender 注入的数据。开发者可以根据需求决定是否在浏览器端重新获取数据来覆盖服务端数据。
在 Modern.js 的早期版本中,支持通过 routes/layout.tsx 中的 init 钩子以及 App.init 方法来添加渲染预处理逻辑。这些方式目前仍然被支持,但我们强烈推荐使用 Runtime 插件实现。
未来版本中,routes/layout.tsx 的 init 钩子和 App.init 方法将逐步废弃。建议尽早迁移到 Runtime 插件方案。