Documentation / @finchart/react / usePlugin
Function: usePlugin()
usePlugin<
TApi>(install,deps):TApi|null
Defined in: hooks/use-plugin.ts:27
무대에 플러그인을 얹고 수명을 React에 맡긴다 — 명령 차선의 관용구다.
<ChartPane> 안이면 그 pane, 밖이면 mainPane이 pane으로 온다. 어디에 얹을지는 소비자가 정한다 — plot.use(…)도 pane.use(…)도 이 문으로 들어온다:
tsx
const maximize = usePlugin((plot) => plot.use(paneMaximize({ gestures: true })), []);
const tools = usePlugin((plot, pane) => pane.use(drawingTools({ plot })), []);재설치는 deps가 정한다 — 설치 함수의 참조가 아니다. 인라인 클로저를 그대로 줘도 된다. deps가 바뀌면 떼고 다시 얹으므로, 옵션만 갈고 싶은 플러그인(applyOptions가 있는 것)은 deps를 고정하고 돌려받은 api로 옵션을 넣는 편이 싸다 — <Crosshair>가 그 모양이다.
반환값은 커밋 전에는 null이다. 이벤트 핸들러에서 쓰는 것이 자연스럽고, 설치 직후가 필요한 초기화(tools.load(…) 같은 부수효과)는 설치 함수 안에서 한다 — 단 StrictMode는 설치·해제를 한 번 왕복시키므로(ADR-0029의 dispose 계약이 감당한다) 그 초기화는 두 번 돌아도 안전해야 한다.
Type Parameters
TApi
TApi extends object
Parameters
install
(plot, pane) => TApi
deps
readonly unknown[]
Returns
TApi | null