Wcześniej wiem, że to nie jest pytanie, które zadajesz, ale nie wiem, dlaczego potrzebujesz dwóch instancji Vue. Dlaczego nie wystarczy związać Vue z body
i traktować obie instancje Vue jako komponenty. Może być trudno zrobić to, co próbujesz zrobić, ponieważ nie było to zamierzone. Może to było, nie wiem. Ustawiłem Vue na ciele i nie widziałem uderzenia wydajności. Oto JSBin.
HTML
<div class="container">
<div id="app1">
<h1>{{ msg }}</h1>
<input type="text" v-model="msg" class="form-control"/>
</div>
<div id="app2">
<h1>{{ msg }}</h1>
<input type="text" v-model="msg" class="form-control"/>
</div>
</div>
JavaScript
var VueComponent1 = Vue.extend({
template: '#app1',
data: function(){
return {
msg: ""
}
}
});
var VueComponent2 = Vue.extend({
template: '#app2',
data: function(){
return {
msg: ""
}
}
});
var app1 = Vue.component('app1', VueComponent1);
var app2 = Vue.component('app2', VueComponent2);
var app = new Vue({
el: 'body',
data: { msg: 'Everybody loves Vue.' }
});
Jeśli szukasz lepszego sposobu oddzielenia Ci kod, może chcesz sprawdzić to Vue with Browserify example.
Laracasts has a free series na Vue, który również był bardzo pouczający.