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 в компонентах

