Здравствуйте, товарищи! Помогите пожалуйста разобраться.
Во
Vue.js приложении столкнулся со странным поведением. Есть родительский компонент через который отправляю данные в дочерний.
При клике на метку, которая находится на яндекс карте, открываю информационное окно. Дочерним компонентом, в моем конкретном случаи является информационное окно. Информационное окно открывается мгновенно при клике на метку, но данные в них появляются через 2 секунды. Происходит странное торможение.
Что самое странное, иконка в шапке информационного окна показывается мгновенно, а словосочетание "Детальная информация" показывается за 2 секунды вместе с переданными данными.
Почему статический текст показывается с задержкой? Проблема в скорости передачи данных между компонентами или в скорости отрисовки информационного окна? Не совсем понимаю, что происходит. Как исправить проблему с таким торможение?
Parent.vue:<template>
<InformationWindow
:object_id=object_id
:object_name=object_id
:object_address=object_address
v-if="visable"/>
</template>
<script>
import InformationWindow from './Child.vue';
export default {
data() {
return {
visable: false,
object_id: null,
object_name: null,
object_address: null
}
},
components: {
InformationWindow,
},
methods: {
geoObjects() {
***
// Инициализовать событие нажатие метки
placemark.events.add('click', () => {
self.object_id = markers.data[item]["OBJECT_ID"];
self.object_name = markers.data[item]["OBJECT_NAME"];
self.object_address = markers.data[item]["OBJECT_ADDRESS"];
self.visable = true;
}
***
}
}
}
</script>
Child.vue:<template>
<div class="card">
<div class="card-header text-uppercase text-center">
<font-awesome-icon :icon="faInfoCircle"/>
<span>Детальная информация</span>
</div>
<div class="card-body">
<p class="card-text" v-if="object_id">
<span>Номер:</span><span>{{ object_id }}</span>
</p>
<p class="card-text" v-if="object_name">
<span>Название: </span><span>{{ object_name }}</span>
</p>
<p class="card-text" v-if="object_address">
<span>Адрес: </span><span>{{ object_address }}</span>
</p>
</div>
</div>
</template>
<script>
export default {
name: "InformationWindow",
props: {
object_id: {
type: Number
},
object_name: {
type: String
},
object_address: {
type: String
}
}
}
</script>