Plugin vs. Theme-Komponente

Die Diskussion wird fortgesetzt von Daumen hoch, zweimal:

Entschuldigung, ich habe die Suche nicht benutzt – ich bin ein schrecklicher Mensch.

Aber wenn es ein Plugin und eine Theme-Komponente gibt, die (fast) dasselbe tun, was ist der wichtigste Unterschied zwischen den beiden?

Ein Plugin muss natürlich neu kompiliert werden, aber gibt es andere Gründe, warum die eine die bessere Wahl als die andere ist?

Zuerst einmal tun das Reactions-Plugin und die change-like-icon-Theme-Komponente (fast) nicht dasselbe.

Ja, Sie können das Reactions-Plugin verwenden, um das Like-Symbol zu ändern, aber sein Hauptzweck ist es, mehrere mögliche Reaktionen anzubieten, daher ist seine Funktionalität viel breiter gefasst als nur eine kosmetische Änderung.

Ein Plugin kann alles tun, was eine Theme-Komponente kann, aber eine Theme-Komponente kann nicht alles tun, was ein Plugin kann.

Ein Plugin besteht aus serverseitigem und clientseitigem Code,
und eine Theme-Komponente besteht nur aus clientseitigem Code und muss sich auf vorhandenen serverseitigen Code verlassen.

5 „Gefällt mir“

Das stimmt zwischen diesen beiden. Ich habe nicht viel darüber nachgedacht, reaktiv zu sein war heute mein zweiter Vorname :joy:

Also – in der realen Welt machen Plugins und Komponenten nie dasselbe und dann ist der einzige Grund, das eine oder andere zu verwenden, wofür es dient?

1 „Gefällt mir“

Das ist so abstrakt formuliert, dass die Antwort wahrscheinlich „Ja“ lautet.

5 „Gefällt mir“

Das stimmt, aber es schien aus einem anderen Thema, dass alles, was er tun wollte, war, das zu tun, was die Theme-Komponente tut, und nur ein :+1: anstelle eines :heart: zu haben.

Wenn Sie Änderungen an Rails vornehmen müssen (wie z. B. das Speichern oder Abrufen anderer Daten aus der Datenbank), benötigen Sie ein Plugin.

Wenn Sie nur das Frontend (Ember und CSS) ändern, reicht eine Theme-Komponente aus. (Vor einiger Zeit war der Unterschied nuancierter.)

Wenn das, was Sie tun, nur in Ember erreicht werden kann, ist eine Theme-Komponente einfacher zu installieren, da sie kein Neuerstellen des Docker-Images erfordert.

3 „Gefällt mir“

Ich habe dies zu seiner logischen Schlussfolgerung mit Topic List Previews (TLP) gebracht.

Dies war früher ein Plugin, bis ein Teil seiner Funktionalität von Core übernommen wurde (Thumbnails), woraufhin ich den größten Teil seiner Funktionalität in eine Theme-Komponente integrieren konnte, um ihm ein größeres Publikum und eine einfachere Installation zu ermöglichen.

Ich habe einige erweiterte Funktionen hinzugefügt und beibehalten, die Änderungen am Backend erfordern, in einem ergänzenden Plugin.

Ein weiteres gutes Beispiel hier ist Guest Gate Theme Component. Dies begann als Plugin, aber es stellt sich heraus, dass man es nicht sein muss, also wurde es als neue Theme-Komponente wiedergeboren (Plugins gab es vor Theme-Komponenten).

Es gibt wahrscheinlich immer noch ein oder zwei Plugins, die in eine Theme-Komponente umgewandelt werden könnten (mir fällt spontan eines ein) … und es wird wahrscheinlich weitere Kandidaten geben, da mehr Funktionalität zur Core-API hinzugefügt wird …

3 „Gefällt mir“

Dieses Plugin:

Wurde später auch als Theme-Komponente erstellt:

2 „Gefällt mir“