Заранее, я знаю, что это не вопрос, который вы задаете, но я не знаю, зачем вам два экземпляра Vue. Почему бы просто не связать Vue с body
и рассматривать оба экземпляра Vue как компоненты. Возможно, вам будет трудно делать то, что вы пытаетесь сделать, потому что это не было предназначено. Возможно, это было, я не знаю. Я поставил Vue на тело, и я не видел удара производительности. Вот 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.' }
});
Если вы ищете лучший способ, чтобы отделить вам код, вы можете проверить это Vue with Browserify example.
Laracasts has a free series на Vue, который был довольно информативным, а также.