@lector_82
web front-end developer

Как сделать динамическое модальное окно на vue?

Только начал изучать vue и сейчас стоит такая задача, есть массив с данными, это проекты
data() {
            return {
                projects: [
                    {
                        id: '1',
                        src: 'siemens.jpg',
                        title: 'Siemens'

                    },
                    {
                        id: '2',
                        src: 'nokia.jpg',
                        title: 'Nokia'
                    },
         ..............

и я вывожу их через v-for:
<div v-for="item in projects" :key="item.id" @click="showModal">
     <img :src="require('@/assets/portfolio/' + item.src)" :alt="item.title" loading="lazy" width="200" height="200">
      <p>{{item.title}}</p>
</div>

хочу сделать так чтобы при клике на проект открывалось модальное окно и туда передавались данные проекта(название, картинка). Чтобы был один компонент Modal.vue и вот как-то туда передавать данные, потому что проектов может быть много и не хочется делать под каждый проект свою модалку. Спасибо!
  • Вопрос задан
  • 196 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если это только для одной страницы, то можно и без компонента обойтись. Просто добавьте на страницу модальный div, который будет показываться при выборе проекта. Пока в selectedProject значение, приводимое к false (например, null) - этот div скрыт. Записали туда ссылку на проект - div активировался.
<div v-show="selectedProject" class="modal">
  ...
  {{ selectedProject.title }} 
  ...
</div>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Spaceoddity
https://ru.vuejs.org/v2/examples/modal.html
И швыряйте в него данные через пропсы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы