Управление модалкой Bootstrap 5 на Vue?

Для управления модалками Bootstrap 5 на Vue.js есть несколько подходов. Рассмотрим два основных способа: классический подход с использованием jQuery и современный подход с использованием компонентов Vue.

1. Классический подход с использованием jQuery:

Bootstrap модалки основаны на библиотеке jQuery, поэтому первым шагом нужно подключить jQuery и Bootstrap в ваш проект Vue.js. Можно сделать это с помощью CDN или через установку пакетов npm.

После того, как вы подключили jQuery и Bootstrap к проекту, вам нужно создать метод внутри Vue-компонента, который будет открывать и закрывать модалку. В этом методе вы будете использовать функционал jQuery для управления модалкой. Вот пример:

<template>
  <div>
    <button @click="openModal">Открыть модалку</button>
    <div id="myModal" class="modal fade">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <h4 class="modal-title">Модалка Bootstrap 5</h4>
            <button type="button" class="close" data-dismiss="modal">×</button>
          </div>
          <div class="modal-body">
            <p>Содержимое модалки...</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Закрыть</button>
            <button type="button" class="btn btn-primary">Сохранить</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  methods: {
    openModal() {
      $('#myModal').modal('show');
    }
  }
}
</script>

В этом примере мы используем функцию $('#myModal').modal('show'), чтобы открыть модалку по клику на кнопку. Также можно использовать функцию hide() для закрытия модалки.

2. Современный подход с использованием компонентов Vue:

Если вы хотите избежать использования jQuery в вашем проекте Vue.js, вы можете воспользоваться другим пакетом, который предоставляет компоненты модалок для Vue. Один из популярных пакетов - это "Vue Bootstrap", который предоставляет компоненты Bootstrap для Vue.js.

Сначала установите пакет "Vue Bootstrap":

npm install vue-bootstrap

После установки вы можете использовать компонент модалки в вашем проекте Vue.js. Вот пример:

<template>
  <div>
    <button @click="openModal">Открыть модалку</button>
    <b-modal v-model="modalOpened" id="myModal">
      <template v-slot:modal-title>
        <h4>Модалка Vue Bootstrap</h4>
      </template>
      <template v-slot:default>
        <p>Содержимое модалки...</p>
      </template>
      <template v-slot:modal-footer>
        <button class="btn btn-secondary" @click="closeModal">Закрыть</button>
        <button class="btn btn-primary">Сохранить</button>
      </template>
    </b-modal>
  </div>
</template>

<script>
import { BModal } from 'vue-bootstrap';

export default {
  components: {
    BModal
  },
  data() {
    return {
      modalOpened: false
    };
  },
  methods: {
    openModal() {
      this.modalOpened = true;
    },
    closeModal() {
      this.modalOpened = false;
    }
  }
}
</script>

В этом примере мы использовали компонент b-modal из пакета "Vue Bootstrap". Мы связали его с modalOpened через директиву v-model, чтобы открывать и закрывать модалку. Кнопки в футере модалки также управляются методами openModal и closeModal.

Оба подхода работают и позволяют вам управлять модалками Bootstrap 5 в вашем проекте Vue.js. Выбор зависит от ваших предпочтений и требований к проекту.