2017-12-21 16 views
1

나는 보통과 같이 내 구성 요소를 가져옵니다vue 구성 요소를 탑재하는 방법은 무엇입니까?

Vue.component('comments', require('./components/Comments.vue')); 

하지만 수동 조건에 따라 .vue 파일을 탑재하고 싶습니다. 문서 상태 :

var MyComponent = Vue.extend({ 
    template: '<div>Hello!</div>' 
}) 

var component = new MyComponent().$mount() 
document.getElementById('app').appendChild(component.$el) 

하지만 구성 요소를 별도의 vue 파일에 마운트하려면 어떻게해야합니까?

답변

2

수동으로 구성 요소를 마운트하지 마십시오. 일반적으로 요소를 사용할 수있게 된 후에 만 ​​(예 : 기존 코드와 통합 할 때) 마운트 할 수있는 테스트 및 특정 상황에서만 유용합니다.

single file components의 경우 기본 구성 요소가 이미 장착되어 있으므로 Vue이 처리합니다. 귀하의 경우에는 조건이 충족 될 때 구성 요소 만 마운트하는 v-if을 사용해야합니다. 당신은 그것을 수동으로 할 필요가 없습니다. 여기

는 JSFiddle입니다 : https://jsfiddle.net/5p3nq001/

+0

감사합니다 - 나는 간주 한 V-경우 만 의견이 필요 장착 마크 업에 마운트 버튼 근처에 아무 곳입니다 구성 요소 - 그래서 코멘트 구성 요소는 아이가 될 수 없습니다 버튼 구성 요소의 v-if를 사용합니다. 이 아이디어는 어떤 방식 으로든? – panthro

+0

@panthro이 경우 해당 이벤트를 부모에게 바로 보냄으로써 관련 플래그를 업데이트 할 수 있습니다. 여기에는 [업데이트 된 JSFiddle] (https://jsfiddle.net/eh58yLLn/)이 있습니다. '이벤트 버스 '를 사용할 수 있습니다. –

+0

부모가 내 루트 앱이됩니다. 페이지에 20 개 정도의 버튼이 있다면 (카드 페이지를 생각해보십시오), 어떤 댓글 섹션을 열 것인지 어떻게 알 수 있습니까? – panthro