Решение будет иметь родительский компонент для хранения данных, которые совместно используются обоими компонентами.
В первом компоненте вы можете использовать $emit
, чтобы изменить эти данные родительского и затем передать ихте же данные для модального компонента, используя props
.
Vue.component('app-input', {
props: ['message'],
template: `<input type="text" placeholder="Try me"
v-bind:value="message"
v-on:input="$emit('input', $event.target.value)"/>`
});
Vue.component('app-header', {
props: ['title'],
template: `<h4>{{title}}</h4>`
});
var app = new Vue({
el: '#app',
data: {
message: ''
}
});
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="app">
<app-header v-bind:title="message"></app-header>
<app-input v-model="message"></app-input>
</div>
Выше приведен простой пример того, как это можно сделать.
Компонент <app-input>
меняет родительский элемент message
data
, иэто же свойство передается компоненту <app-header>
в качестве заголовка.