Как указано в комментарии. У вас нет причин иметь два отдельных экземпляра Vue, и первый ответ правильный.Но в некоторых случаях, когда вам действительно нужно иметь несколько экземпляров Vue, вы можете использовать их следующим образом.
var app = new Vue({
el: '#div1',
data: {
message: ''
}
})
Vue.component('testp', {
props: ['message'],
template: '<p>Message is: {{ message }}</p>'
})
var div2 = new Vue({
el: '#div2',
computed: {
newMessage() {
return app.message;
}
},
});
HTML
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="div1">
<input v-model="message" placeholder="edit me">
</div>
<div id="div2">
<testp :message="newMessage"></testp>
</div>
</body>
</html>
Обратите внимание на вычисление значение newMessage
фактически получает свое значение из другого экземпляра Vue (app
), и оно также реагирует .Поэтому, когда значение в первом экземпляре Vue изменяется, оно обновляется в другом экземпляре Vue.
Codepen: https://codepen.io/ashwinbande/pen/xMgQQz