У Vue есть нечто удивительное, Слоты;о котором вы можете прочитать о здесь .Помимо слотов, мы также будем использовать нечто, называемое роутер-линк, которое визуализируется как тег <a>
, который вы также можете прочитать о здесь .
Что я бы предложил сделать,создать новый компонент, который называется что-то вроде ImageButton
.Внутри этого компонента мы будем использовать то, что было упомянуто ранее:
<template>
<router-link :to="route">
<slot name="image" />
</router-link>
</template>
<script>
export default {
name: 'ImageButton',
props: {
route: { type: [String, Object], default: '' }
}
};
</script>
Теперь, как только у нас это будет, нам понадобится еще один компонент для вашего модала - я оставлю вас, чтобы разобраться с этим.Затем, как только вы получите правильный маршрут, идущий с router-link
и modal
, вы сможете просто назвать его так в своем Carousel.vue
:
<image-button v-slot:image :route="'to_your_modal'">
<img :src="'image'" />
</image-button>
Дайте мне знать, еслиу вас есть другие вопросы, документы Vue более подробно описаны здесь здесь .