Composant de plugin contre thème

Continuant la discussion de Pouce levé, deux fois :

Désolé, je n’ai pas cherché — je suis une horrible personne.

Mais s’il existe un plugin et un composant de thème qui font (presque) la même chose, quelle est la différence la plus importante entre les deux ?

Un plugin a besoin d’être reconstruit, bien sûr, mais y a-t-il d’autres raisons pour lesquelles l’un est un meilleur choix que l’autre ?

Premièrement, le plugin Reactions et le composant de thème change-like-icon ne font pas (presque) la même chose.

Oui, vous pouvez utiliser le plugin Reactions pour changer l’icône “like”, mais son objectif principal est d’offrir plusieurs réactions possibles, donc sa fonctionnalité est beaucoup plus large qu’un simple changement cosmétique.

Un plugin peut faire tout ce qu’un composant de thème peut faire, mais un composant de thème ne peut pas faire tout ce qu’un plugin peut faire.

Un plugin se compose de code côté serveur et côté client,
et un composant de thème ne se compose que de code côté client et doit s’appuyer sur le code côté serveur existant.

5 « J'aime »

C’est vrai entre les deux. Je n’ai pas beaucoup réfléchi, être réactif était mon deuxième prénom aujourd’hui :joy:

Alors — dans le monde réel, les plugins et les composants ne font jamais les mêmes choses et la seule raison d’utiliser l’un ou l’autre est ce qu’il sert ?

1 « J'aime »

C’est formulé de manière si abstraite que la réponse est probablement « oui ».

5 « J'aime »

C’est vrai, mais il semblait d’après un autre sujet que tout ce qu’il voulait faire était de faire ce que fait le composant de thème et d’avoir juste un seul :+1: plutôt qu’un :heart:.

Si vous avez besoin de modifications apportées à Rails (comme si vous deviez stocker ou récupérer des données différentes de la base de données), vous avez besoin d’un plugin.

Si vous ne modifiez que le front-end (Ember et CSS), un composant de thème fera l’affaire. (Il y a quelque temps, la différence était plus subtile.)

Si ce que vous faites peut être accompli uniquement dans Ember, alors un composant de thème est plus facile à installer car il ne nécessite pas de reconstruire l’image docker.

3 « J'aime »

Je l’ai poussé à sa conclusion logique avec Topic List Previews (TLP).

C’était autrefois un plugin, jusqu’à ce qu’une partie de ses fonctionnalités soit adoptée par le Core (miniatures), moment auquel j’ai pu intégrer la plupart de ses fonctionnalités dans un composant de thème pour lui donner un public plus large et une installation plus facile.

J’ai ajouté et conservé certaines fonctionnalités avancées qui nécessitent des modifications du backend dans un plugin complémentaire.

Un autre bon exemple ici est Guest Gate Theme Component. Cela a commencé comme un plugin, mais il s’avère que vous n’avez pas besoin qu’il le soit, il a donc été rebaptisé en un nouveau composant de thème (les plugins sont antérieurs aux composants de thème).

Il y a probablement encore un ou deux plugins qui pourraient être convertis en composant de thème (je peux en penser un à brûle-pourpoint)… et il y aura probablement plus de candidats à mesure que davantage de fonctionnalités seront ajoutées à l’API principale…

3 « J'aime »

Ce plugin :

A également été créé plus tard en tant que composant de thème :

2 « J'aime »