플러그인과 테마 컴포넌트 비교

Thumbs up, twice에서 이어서 논의합니다.

죄송합니다. 검색을 시도해 보지 않았습니다 — 정말 죄송합니다.

그런데 플러그인과 테마 컴포넌트가 거의 같은 일을 한다면, 이 둘 사이에서 가장 중요한 차이점은 무엇일까요?

물론 플러그인은 재빌드가 필요하지만, 다른 쪽이 더 나은 선택이 되는 다른 이유는 있을까요?

첫째, Reactions 플러그인과 change-like-icon 테마 컴포넌트는 (거의) 동일한 기능을 수행하지 않습니다.

Reactions 플러그인으로 좋아요 아이콘을 변경하는 것은 가능하지만, 이 플러그인의 주된 목적은 여러 가지 반응 옵션을 제공하는 것이므로 단순한 외관 변경 이상의 훨씬 넓은 범위의 기능을 갖추고 있습니다.

플러그인은 테마 컴포넌트가 할 수 있는 모든 일을 수행할 수 있지만, 테마 컴포넌트는 플러그인이 할 수 있는 모든 일을 수행할 수 없습니다.

플러그인은 서버 측 코드와 클라이언트 측 코드로 구성되는 반면, 테마 컴포넌트는 클라이언트 측 코드로만 구성되며 기존 서버 측 코드에 의존해야 합니다.

맞아, 그 둘 사이에서는 그런 말이 맞는 것 같아. 나는 그렇게 깊이 생각하지 않았고, 오늘 내 별명은 '반응형’이었지 :joy:

그렇다면 — 현실 세계에서 플러그인과 컴포넌트는 절대 같은 일을 하지 않는 건데, 이걸 쓰거나 저걸 쓰는 유일한 이유는 그것이 어떤 용도로 사용되는가라는 것뿐이야?

너무 추상적으로 표현되어 있어서 답은 아마 '그렇다’일 겁니다.

그렇습니다. 하지만 다른 토픽에서 보았을 때, 그가 원했던 것은 테마 컴포넌트가 하는 것과 동일한 작업을 수행하되, :heart: 대신 :+1: 하나만 표시하는 것이었습니다.

Rails에 변경 사항이 필요할 때(예: 데이터베이스에서 다른 데이터를 저장하거나 검색해야 할 때)는 플러그인이 필요합니다.

프론트엔드(Ember와 CSS)만 변경하는 경우라면 테마 컴포넌트로 충분합니다. (과거에는 그 차이가 더 미묘했습니다.)

Ember만으로 수행할 수 있는 작업이라면, 도커 이미지를 다시 빌드할 필요가 없으므로 테마 컴포넌트가 설치하기가 더 쉽습니다.

이 아이디어를 논리적 결론까지 발전시켜 Topic List Previews (TLP) 를 만들었습니다.

이것은 원래 플러그인이었지만, 일부 기능(섬네일)이 코어에 채택되면서 대부분의 기능을 테마 컴포넌트로 전환하여 더 많은 사용자에게 접근성을 높이고 설치를 용이하게 할 수 있었습니다.

백엔드 수정이 필요한 몇 가지 고급 기능은 보완 플러그인에서 추가하고 유지하고 있습니다.

여기서 또 다른 좋은 예시는 Guest Gate Theme Component 입니다. 이것도 처음에는 플러그인이었지만, 사실 플러그인일 필요가 없다는 것이 밝혀져 새로운 테마 컴포넌트로 재탄생했습니다(플러그인은 테마 컴포넌트보다 먼저 등장했기 때문입니다).

아직 테마 컴포넌트로 전환할 수 있는 플러그인이 하나나 둘 더 있을 수 있습니다(머릿속에 바로 떠오르는 것이 하나 있습니다) … 그리고 코어 API에 기능이 더 추가되면 더 많은 후보가 나올 가능성이 높습니다 …

이 플러그인:

나중에 테마 컴포넌트로도 제작되었습니다: