Primero, el plugin Reactions y el componente temático change-like-icon no hacen (casi) lo mismo.
Sí, puedes usar el plugin Reactions para cambiar el icono de “me gusta”, pero su propósito principal es ofrecer múltiples reacciones posibles, por lo que su funcionalidad es mucho más amplia que un simple cambio cosmético.
Un plugin puede hacer todo lo que un componente temático puede hacer, pero un componente temático no puede hacer todo lo que un plugin puede hacer.
Un plugin consta de código del lado del servidor y del lado del cliente,
y un componente temático solo consta de código del lado del cliente y tiene que depender del código del lado del servidor existente.
Es cierto, pero parecía de otro tema que lo único que quería era hacer lo que hace el componente temático y tener solo un en lugar de un .
Si necesitas hacer cambios en Rails (como almacenar o recuperar datos diferentes de la base de datos), necesitas un plugin.
Si solo estás cambiando el frontend (Ember y CSS), un componente temático servirá. (Hace un tiempo, la diferencia era más sutil).
Si lo que estás haciendo se puede lograr solo en Ember, entonces un componente temático es más fácil de instalar ya que no requiere reconstruir la imagen de docker.
Esto solía ser un plugin, hasta que parte de su funcionalidad fue adoptada por el Núcleo (miniaturas), momento en el que pude poner la mayor parte de su funcionalidad en un Componente de Tema para darle una audiencia más amplia y una instalación más fácil.
He añadido y mantenido algunas características avanzadas que requieren cambios en el backend en un plugin complementario.
Otro buen ejemplo aquí es Guest Gate Theme Component. Esto comenzó como un plugin, pero resulta que no necesitas que lo sea, así que renació como un nuevo Componente de Tema (los plugins son anteriores a los Componentes de Tema).
Probablemente todavía hay uno o dos plugins que podrían convertirse en un Componente de Tema (puedo pensar en uno de inmediato)… y es probable que haya más candidatos a medida que se agregue más funcionalidad a la API principal…