Vue d'ensemble

Les plugins client de NocoBase peuvent faire beaucoup de choses : enregistrer de nouvelles pages, écrire des composants personnalisés, appeler les API du back-end, ajouter des blocs et des champs, voire étendre les boutons d'action. Toutes ces capacités s'organisent autour d'un point d'entrée de plugin unifié.

Si vous avez déjà de l'expérience React, vous prendrez vite vos marques — la majorité des scénarios consiste à écrire des composants React classiques, en s'appuyant sur les capacités contextuelles fournies par NocoBase (envoi de requêtes, i18n) pour s'intégrer avec NocoBase. C'est uniquement quand vous avez besoin que votre composant apparaisse dans l'interface de configuration visuelle de NocoBase qu'il faut comprendre FlowEngine.

Attention

NocoBase est en train de migrer de client (v1) vers client-v2 ; client-v2 est encore en développement actif. Le contenu présenté ici est destiné à être expérimenté ; il n'est pas recommandé pour la production. Pour les nouveaux plugins, utilisez le répertoire src/client-v2/ et l'API de @nocobase/client-v2.

Parcours d'apprentissage

Nous vous recommandons d'aborder le développement de plugin client dans l'ordre suivant, du plus simple au plus complexe :

Plugin (entrée) → Router (page) → Component (composant) → Context (contexte) → FlowEngine (extension UI)

Notamment :

  1. Plugin : la classe d'entrée du plugin, où vous enregistrez routes, modèles et autres ressources dans les méthodes du cycle de vie comme load().
  2. Router : enregistrer des routes de page via router.add(), et enregistrer des pages de configuration de plugin via pluginSettingsManager.
  3. Component : ce qui est monté sur une route est un composant React. Par défaut, on écrit en React + Antd ; ce n'est pas différent du développement front-end classique.
  4. Context : dans le plugin, on récupère le contexte via this.context ; dans un composant, via useFlowContext(). Le contexte permet d'accéder aux capacités fournies par NocoBase — envoi de requêtes (ctx.api), i18n (ctx.t), logging (ctx.logger), etc.
  5. FlowEngine : si votre composant doit apparaître dans les menus « Ajouter un bloc / champ / action » et permettre une configuration visuelle par l'utilisateur, vous devez l'envelopper avec un FlowModel.

Les quatre premières étapes couvrent la majorité des cas. Vous n'avez besoin de la cinquième que pour une intégration profonde avec le système de configuration UI de NocoBase. Si vous hésitez sur l'approche à utiliser, voir Component vs FlowModel.

Index rapide

Je veux…Aller voir
Comprendre la structure de base d'un plugin clientPlugin
Ajouter une page indépendanteRouter - routage
Ajouter une page de configuration de pluginRouter - routage
Écrire un composant React classiqueDéveloppement de Component
Appeler l'API back-end, utiliser les capacités intégrées de NocoBaseContext → Capacités courantes
Personnaliser le style des composantsStyles et thèmes
Ajouter un nouveau blocFlowEngine → Extensions de bloc
Ajouter un nouveau composant de champFlowEngine → Extensions de champ
Ajouter un nouveau bouton d'actionFlowEngine → Extensions d'action
Hésiter entre Component et FlowModelComponent vs FlowModel
Voir un plugin complet en actionExemples pratiques

Liens connexes