본문 바로가기
vue.js/버그

[vue] 전역 컴퍼넌트 등록이 안됨 (If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.)

by 냉면돈가스 2023. 1. 17.

vue3에서는 아래처럼 전역컴퍼넌트를 등록한다.

그런데 자꾸 AbcComponent를 커스텀 엘리먼트로 인식을 하며

커스텀 엘리먼트를 허용하는 옵션을 넣으라 함

 

전역등록 자체가 잘못됐다고 생각하는데 이유가 뭔지 모르겠어서 이참에 한 번 파고들어 봄

 

먼저 공식문서 부터 봄

app.component() api 문서가 있을까 싶어 찾아봤고 있었음

https://vuejs.org/api/application.html#app-component

 

Application API | Vue.js

 

vuejs.org

app.component로 전역 컴퍼넌트를 등록할 때 사용했던 컴퍼넌트 이름을 인수로 이용해

컴퍼넌트를 반환받아옴

저렇게 반환받아서 변수에 저장 후, 사용하면 문제가 없긴함

 

근데 같은 공식문서의 다른 페이지에서는 굳이 위 과정없이 등록만으로 바로 사용이 가능하던데 이건 아직 의문

아래가 그 예시

https://vuejs.org/guide/components/registration.html#global-registration

 

Component Registration | Vue.js

 

vuejs.org

왜 위 예시에선 바로 사용이 가능한지 모르겠음

아무튼 app.component로 반환받아서 사용하면 되긴하네

근데 그러면 그냥 임포트 하는거랑 차이 없지 않나?

아니면 전역객체에다가 컴퍼넌트를 등록시키는 방법도되려나 확인해봤는데

찾지를못했음

window.AbcComponent = app.component("AbcComponent");

애초에 전역객체에 등록하여 사용이 된다 하더라도 이건 외부에 그대로 노출되는거라 조금 그럼

브라우저에서 지워버리면 컴퍼넌트가 사라지지않을까...

 

 

 

댓글