Реактивность на Vue? Как обновить компонент?
Получаю данные с сервера. Требуется перерисовывать компонент каждый раз, когда приходят новые данные, как реализовать? В чем ошибка? подскажите пожалуйста
data(){
return {
firstWindow:[],
secondWindow:[],
objForChangeValue:[],
directories:["C:","E:","D:"],
firstDir:"C:",
secondDir:"C:",
whichScreen: true,
flagForBack: true
}
},
methods:{
newvalue(data, whichScreen){
if(whichScreen){
console.log("попал");
console.log(data);
this.firstWindow = Object.assign({}, this.firstWindow, data);
}else{
this.secondWindow = Object.assign({}, this.secondWindow, data);
}
}
}
компонент
<template>
<div class = "main-window">
<ul >
<Directoire
v-bind:directories="directories"
/>
<span>{{firstDir}}</span>
<BackRowVue
v-if="flagForBack"
v-bind:whichScreen="whichScreen"
/>
<div class = "back-block"> BACK </div>
<Item
v-for="elem of firstWindow"
v-bind:key="elem"
v-bind:elem="elem"
v-bind:whichScreen="whichScreen"
v-bind:firstWindow="firstWindow"
v-bind:secondWindow="secondWindow"
@newvalue="newvalue"
/>
</ul>
<ul @newValue="newvalue">
<Directoire
v-bind:directories="directories"
/>
<span>{{secondDir}}</span>
<BackRowVue
v-if="flagForBack"
v-bind:whichScreen="!whichScreen"
/>
<div class = "back-block"> BACK </div>
<Item
v-for="elem of secondWindow"
v-bind:key="elem"
v-bind:elem="elem"
v-bind:whichScreen="!whichScreen"
v-bind:firstWindow="firstWindow"
v-bind:secondWindow="secondWindow"
/>
</ul>
</div>
</template>
компонент Item
<template>
<div class = "row__elements">
<div @click="event =>clickOnRow(elem, whichScreen)" class = "row__element">
<div class = "file-info icon"> </div>
<div class = "file-info title"> {{elem.fileName}} </div>
<div class = "file-info size"> {{elem.sizeOrType}} </div>
<div class = "file-info date"> {{elem.dateOfChange}} </div>
<div class = "file-info date"> {{whichScreen}} </div>
<div class = "file-info date"> {{elem.dir}} </div>
</div>
</div>
</template>