Ember 업그레이드: Mixin, 특히 bufferedProperty에 대한 계획은 어떻게 되나요?

COMPATIBILITY: move thumbnail selector to Glimmer & new Component modal system by merefield · Pull Request #32 · merefield/discourse-tc-topic-list-previews · GitHub 작업 중입니다.

Modal Controller에 bufferedProperty를 사용하다가, 새로운 Component 기반 모달 아키텍처를 지원하기 위해 Component로 이동해야 했습니다.

하지만 여전히 bufferedProperty를 사용해야 한다고 생각합니다(테마 메타의 값을 업데이트하고 있기 때문이죠).

그러나 이렇게 하면 에러가 발생합니다:

export default class AwesomeModalComponent extends Component.extend(
  bufferedProperty("model")
) {

… 그리고 TypeError: n.default.extend is not a function 에러를 받습니다.

이 패턴의 예시를 몇 가지 찾았지만, 모두 Controller용이었습니다:

여기서 "TODO"에 대해 어떤 계획이 있는지 알면 좋겠습니다.

가장 쉬운 단기적인 해결책은: 모달에 Classic Component를 계속 사용하는 것입니다(즉, glimmer component가 아닌 것). Classic Component는 여전히 mixins을 지원합니다.

Classic component를 고수하는 것(즉, https://meta.discourse.org/t/converting-modals-from-legacy-controllers-to-new-dmodal-component-api/268057에 설명된 전략)은旧的 컨트롤러 기반 시스템에서 가장 깔끔한 1:1 업그레이드를 제공합니다.

장기적으로, 우리 핵심 mixins 중 일부에 대한 대안을 찾아야 합니다. 하지만 아직 그 단계에는 도달하지 못했습니다.

후속으로 감사 인사를 전합니다. 이 정확한 접근 방식을 사용해 모든 것이 정상 작동하도록 만들었습니다 - 모달 자체는 Mixin이 필요했지만, 나머지는 모두 Glimmer로 이동했습니다.

참고로, bufferedProperty는 마법을 많이 부리는 것 같고, 변경 사항 전달과 관련된 표준 규칙 중 어느 것도 따르지 않는 것 같습니다!