Plugin vs. componente de tema

Continuando a discussão de Polegar para cima, duas vezes:

Desculpe, eu não tentei pesquisar — sou uma pessoa horrível.

Mas se existe um plugin e um componente de tema que fazem (quase) a mesma coisa, qual é a diferença mais importante entre os dois?

Um plugin precisa ser reconstruído, é claro, mas há algum outro motivo pelo qual um é uma escolha melhor do que o outro?

Primeiro, o plugin Reactions e o componente de tema change-like-icon não fazem (quase) a mesma coisa.

Sim, você pode usar o plugin Reactions para alterar o ícone de like, mas seu propósito principal é oferecer múltiplas reações possíveis, então sua funcionalidade é muito mais ampla do que apenas uma mudança cosmética.

Um plugin pode fazer tudo o que um componente de tema pode fazer, mas um componente de tema não pode fazer tudo o que um plugin pode fazer.

Um plugin consiste em código do lado do servidor e do lado do cliente,
e um componente de tema consiste apenas em código do lado do cliente e precisa depender do código existente do lado do servidor.

5 curtidas

Isso é verdade entre esses. Eu não pensei muito, ser reativo foi meu nome do meio hoje :joy:

Então — no mundo real, plugins e componentes nunca fazem as mesmas coisas e a única razão para usar um ou outro é o que ele serve?

1 curtida

Está tão abstratamente formulado que a resposta provavelmente é ‘sim’.

5 curtidas

Isso é verdade, mas parecia de outro tópico que tudo o que ele queria fazer era o que o componente de tema faz e ter apenas um :+1: em vez de um :heart:.

Se você precisa de alterações feitas no Rails (como precisar armazenar ou recuperar dados diferentes do banco de dados), então você precisa de um plugin.

Se você está alterando apenas o front-end (Ember e CSS), um componente de tema fará o truque. (Há um tempo, a diferença era mais sutil.)

Se o que você está fazendo pode ser realizado apenas no Ember, então um componente de tema é mais fácil de instalar, pois não requer a reconstrução da imagem do docker.

3 curtidas

Levei isso à sua conclusão lógica com Topic List Previews (TLP).

Isso costumava ser um plugin, até que parte de sua funcionalidade foi adotada pelo Core (miniaturas), momento em que pude colocar a maior parte de sua funcionalidade em um Componente de Tema para dar a ele um público maior e uma instalação mais fácil.

Adicionei e mantive alguns recursos avançados que exigem alterações no back-end em um plugin complementar.

Outro bom exemplo aqui é Guest Gate Theme Component. Isso começou como um plugin, mas acontece que você não precisa que seja, então renasceu como um novo Componente de Tema (plugins são anteriores aos Componentes de Tema).

Provavelmente ainda existem um ou dois plugins que poderiam ser convertidos em um Componente de Tema (posso pensar em um de cabeça) … e provavelmente haverá mais candidatos à medida que mais funcionalidade for adicionada à API principal …

3 curtidas

Este plugin:

Foi feito como um componente de tema posteriormente também:

2 curtidas