Context 上下文
在 NocoBase 中,上下文(Context) 是连接插件代码和 NocoBase 能力的桥梁。通过上下文你可以发请求、做国际化、写日志、导航页面等。
上下文有两个访问入口:
- Plugin 里:
this.context - React 组件里:
useFlowContext()(从@nocobase/flow-engine导入)
这两者返回的是同一个对象(FlowEngineContext 实例),只是使用场景不同。
在 Plugin 里使用
在插件的 load() 等生命周期方法中,通过 this.context 访问:
在组件里使用
在 React 组件中,通过 useFlowContext() 获取同一个上下文对象:
Plugin 快捷属性 vs ctx 属性
Plugin 类提供了一些快捷属性,方便在 load() 里使用。不过要注意,有些 Plugin 类的快捷属性和 ctx 上的同名属性指向不同的东西:
其中最容易混淆的是 this.router 和 ctx.router:
this.router(Plugin 快捷属性)→ RouterManager,用来注册路由(.add())ctx.router(上下文属性)→ React Router 实例,用来页面导航(.navigate())
上下文提供的常用能力
这里列出常用的上下文能力,不过有些能力只在 Plugin 里可用,有些只在组件里可用,有些两边都有但写法不同。
每项能力的详细用法和 代码示例见 常用能力。
相关链接
- 常用能力 — ctx.api、ctx.t、ctx.logger 等详细用法
- Plugin 插件 — 插件入口和快捷属性
- Component 组件开发 — useFlowContext 在组件中的基本用法

