@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>
|
Теперь у вас будет кнопка, которая открывает модальное окно с заданным содержимым, а при нажатии на кнопку "Закрыть" модальное окно закроется.