@bernardo_nolan
Для создания модального окна на Vue.js можно использовать следующие шаги:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<template> <div class="modal"> <div class="modal-content"> <slot></slot> <button @click="$emit('close')">Закрыть</button> </div> </div> </template> <style> .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; } .modal-content { background-color: white; padding: 20px; border-radius: 4px; } </style> |
В этом компоненте определены два слота: один для содержимого модального окна, а другой для кнопки закрытия. Также определены стили для модального окна.
1 2 3 4 5 |
data() { return { showModal: false }; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<template> <div> <button @click="showModal = true">Открыть модальное окно</button> <Modal v-if="showModal" @close="showModal = false"> <h2>Заголовок модального окна</h2> <p>Содержимое модального окна</p> </Modal> </div> </template> <script> import Modal from './Modal.vue'; export default { components: { Modal }, data() { return { showModal: false }; } }; </script> |
Здесь мы импортируем компонент модального окна и определяем его в качестве дочернего компонента. Мы также связываем событие закрытия модального окна с обновлением переменной showModal
.
Готово! Теперь при нажатии на кнопку "Открыть модальное окно" появится модальное окно с заголовком и содержимым, а при нажатии на кнопку "Закрыть" окно закроется.
@bernardo_nolan
Для создания модального окна на Vue.js можно использовать компоненты и управление состоянием. Вот пример кода для создания модального окна:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<template> <div class="modal" v-if="isVisible"> <div class="modal-content"> <slot></slot> <button @click="closeModal">Закрыть</button> </div> </div> </template> <script> export default { data() { return { isVisible: false } }, methods: { openModal() { this.isVisible = true; }, closeModal() { this.isVisible = false; } } } </script> <style> .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; } .modal-content { background-color: white; padding: 20px; border-radius: 4px; } </style> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<template> <div> <button @click="openModal">Открыть модальное окно</button> <Modal ref="modal"> <h2>Заголовок модального окна</h2> <p>Содержимое модального окна</p> </Modal> </div> </template> <script> import Modal from './Modal.vue'; export default { components: { Modal }, methods: { openModal() { this.$refs.modal.openModal(); } } } </script> |
Теперь у вас будет кнопка, которая открывает модальное окно с заданным содержимым, а при нажатии на кнопку "Закрыть" модальное окно закроется.