Componente plugin vs. tema

Continuando la discussione da Pollice in su, due volte:

Scusa, non ho provato a cercare — sono una persona orribile.

Ma se esiste un plugin e un componente tema che fanno (quasi) la stessa cosa, qual è la differenza più importante tra i due?

Un plugin necessita di una ricostruzione, ovviamente, ma ci sono altri motivi per cui uno è una scelta migliore dell’altro?

Innanzitutto, il plugin Reactions e il componente del tema change-like-icon non fanno (quasi) la stessa cosa.

Sì, puoi usare il plugin Reactions per cambiare l’icona “mi piace”, ma il suo scopo principale è offrire reazioni multiple possibili, quindi la sua funzionalità è molto più ampia di un semplice cambiamento estetico.

Un plugin può fare tutto ciò che un componente del tema può fare, ma un componente del tema non può fare tutto ciò che un plugin può fare.

Un plugin è costituito da codice lato server e lato client,
e un componente del tema è costituito solo da codice lato client e deve fare affidamento sul codice lato server esistente.

5 Mi Piace

È vero tra questi. Non ci ho pensato molto, essere reattivo è stato il mio secondo nome oggi :joy:

Quindi, nel mondo reale, i plugin e i componenti non fanno mai le stesse cose e l’unica ragione per usare l’uno o l’altro è ciò a cui serve?

1 Mi Piace

È formulato in modo così astratto che la risposta è probabilmente “sì”.

5 Mi Piace

È vero, ma da un altro argomento sembrava che tutto ciò che voleva fare fosse fare ciò che fa il componente del tema e avere solo un singolo :+1: invece di un :heart:.

Se hai bisogno di apportare modifiche a Rails (come archiviare o recuperare dati diversi dal database), allora hai bisogno di un plugin.

Se stai modificando solo il front-end (Ember e CSS), allora un componente del tema farà al caso tuo. (Un po’ di tempo fa, la differenza era più sfumata.)

Se ciò che stai facendo può essere realizzato solo in Ember, allora un componente del tema è più facile da installare poiché non richiede la ricostruzione dell’immagine docker.

3 Mi Piace

L’ho portato alla sua conclusione logica con Topic List Previews (TLP).

Questo era un plugin, finché alcune delle sue funzionalità non sono state adottate da Core (miniature) a quel punto sono stato in grado di inserire la maggior parte delle sue funzionalità in un componente tematico per dargli un pubblico più ampio e un’installazione più semplice.

Ho aggiunto e mantenuto alcune funzionalità avanzate che richiedono modifiche al backend in un plugin complementare.

Un altro buon esempio qui è Guest Gate Theme Component. Questo è iniziato come un plugin, ma si scopre che non è necessario che lo sia, quindi è rinato come un nuovo componente tematico (i plugin precedono i componenti tematici).

Ci sono probabilmente ancora uno o due plugin che potrebbero essere convertiti in un componente tematico (ne posso pensare uno a memoria) … e ci saranno probabilmente altri candidati man mano che più funzionalità verranno aggiunte all’API principale …

3 Mi Piace

Questo plugin:

È stato realizzato anche come componente tematico in seguito:

2 Mi Piace