vue3에서는 아래처럼 전역컴퍼넌트를 등록한다.
그런데 자꾸 AbcComponent를 커스텀 엘리먼트로 인식을 하며
커스텀 엘리먼트를 허용하는 옵션을 넣으라 함
전역등록 자체가 잘못됐다고 생각하는데 이유가 뭔지 모르겠어서 이참에 한 번 파고들어 봄
먼저 공식문서 부터 봄
app.component() api 문서가 있을까 싶어 찾아봤고 있었음
https://vuejs.org/api/application.html#app-component
app.component로 전역 컴퍼넌트를 등록할 때 사용했던 컴퍼넌트 이름을 인수로 이용해
컴퍼넌트를 반환받아옴
저렇게 반환받아서 변수에 저장 후, 사용하면 문제가 없긴함
근데 같은 공식문서의 다른 페이지에서는 굳이 위 과정없이 등록만으로 바로 사용이 가능하던데 이건 아직 의문
아래가 그 예시
https://vuejs.org/guide/components/registration.html#global-registration
왜 위 예시에선 바로 사용이 가능한지 모르겠음
아무튼 app.component로 반환받아서 사용하면 되긴하네
근데 그러면 그냥 임포트 하는거랑 차이 없지 않나?
아니면 전역객체에다가 컴퍼넌트를 등록시키는 방법도되려나 확인해봤는데
찾지를못했음
window.AbcComponent = app.component("AbcComponent");
애초에 전역객체에 등록하여 사용이 된다 하더라도 이건 외부에 그대로 노출되는거라 조금 그럼
브라우저에서 지워버리면 컴퍼넌트가 사라지지않을까...
댓글