2017-12-04 5 views
2

나는이 문서에 따라 일부 플러그인을 만들려고 오전 :Vue 플러그인 내에서 호출하거나 호출하는 방법은 무엇입니까?

https://alligator.io/vuejs/creating-custom-plugins/

나는 루트 뷰 인스턴스 마운트 또는 만들 때 뭔가를 실행하는 데 필요한 플러그인을 가지고있다. 지금까지 나는 내가 원했을 것이 아닌 모든 구성 요소에 무언가를 주입 할 수있는 방법만을 볼 수 있습니다.

메인 Vue 인스턴스가 마운트 될 때 간단히 뭔가를해야합니다. 어떻게하면 플러그인으로이 작업을 수행 할 수 있습니까?

플러그인의 install 메서드는 실제 created 메서드보다 먼저 발생하기 때문에 트릭을 수행하지 않는 것 같습니다.

답변

2

루트 Vue 구성 요소를 여러 개 가질 수 있습니다. A "루트 구성 요소는"단지 new 구문과 부모를 가지지 않는 구성 요소를 사용하여 만든 구성 요소입니다, 그래서 다음과 같이이를 감지 할 수 있습니다

Vue.mixin({ 
    created() { 
    if (!this.$parent) { 
     // This is either the root component or a component 
     // created with `new` and no parent 
    } 
    } 
}) 
+0

이 검사는 현재 모든 단일 구성 요소에 대해 수행됩니다. 이 일을 효율적으로 처리 할 방법이 실제로 없습니까? –

+0

나는 그렇게 믿지 않는다. Vue가 그러한 고리를 제공하기 위해 알고있는 * 단일 * 별개의 "루트"구성 요소는 없습니다. 어쩌면 루트 구성 요소가'created' 훅에서 플러그인을 초기화 할 책임이 있도록 컨트롤을 반전해야합니다. –

+0

그건 그렇고, 모든 단일 인스턴스에 추가하지 않고 단일 루트 속성을 기본 루트 인스턴스에 어떻게 추가할까요? –