How many different ways to toggle the visibility of a modal in Bootstrap VueJS?

Hi Friends 👋,

Welcome To SortoutCode! ❤️

There are many different ways to toggle the visibility of the modal using BootstrapVue.We are going to use the v-b-modal directive and v-model property in BootstrapVue.

Today I am going to show you How many different ways to toggle the visibility of the modal using BootstrapVue in VueJS?

Table of contains

  • Setup the Vue.js
  • Install the Bootstrap and BootstrapVue
  • Create FirstComponent.vue and import it into App.js
  • Using the v-b-modal directive
  • Using the v-model property

Let’s start today’s tutorial How do I many different ways to toggle the visibility of the modal using BootstrapVue in VueJS?

Setup the Vue.js

First, we have to install the Vue project, I had installed the vueJS in my system. If you haven’t installed or have any problem with installation you can follow this article, which will show you step by step process of installation.

How to Install the VueJS project?

Install the Bootstrap and BootstrapVue

First, we have to install the Vue project, I had installed the vueJS in my system. If you haven’t installed or have any problem with installation you can follow this article, which will show you step by step process of installation. In that article, I had also show you how to install BootstrapVue in your vue.js project step by step.

How to install or configure vue-bootstrap in VueJS?

Create FirstComponent.vue and import it into App.js

Create the new component in the src/components/ components folder. the component name is FirstComponent.vue and imported into App.js file:

App.js

<template>
  <div id="app">
    <FirstComponent />
  </div>
</template>

<script>
import FirstComponent from "./components/FirstComponent.vue";
export default {
  name: "App",
  components: {
    FirstComponent,
  },
};
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

Using the v-b-modal directive

We can show the modal using the v-b-modal directive. We can show and hide the modal with very less code.

we are going to use the modifiers to trigger the modal visibility:

FirstComponent.vue

<template>
  <b-container fluid>
    <div>
      <b-button v-b-modal.modal-1>Click Here</b-button>
      <b-modal id="modal-1" title="SortoutCode">
        <p class="my-4">Hi everyone,</p>
        <p class="my-4">Welcome to sortoutcode.com</p>
      </b-modal>
    </div>
  </b-container>
</template>

<script>
export default {
  name: "FirstComponent",
};
</script>

For now, let’s check the output.

bootstrap vue modal

we are going to use the value to trigger the modal visibility:

FirstComponent.vue

<template>
  <b-container fluid>
    <div>
      <b-button v-b-modal="'modal-1'">Click Here</b-button>
      <b-modal id="modal-1" title="SortoutCode">
        <p class="my-4">Hi everyone,</p>
        <p class="my-4">Welcome to sortoutcode.com</p>
      </b-modal>
    </div>
  </b-container>
</template>

<script>
export default {
  name: "FirstComponent",
};
</script>

For now, let’s check the output.

bootstrap vue modal

Using the v-model property

We are going to show/hide the modal using the v-model property.v-model property is automatically synced with the <b-modal> visible state and we can show/hide the modal using the v-model.

FirstComponent.vue

<template>
  <b-container fluid>
    <div>
      <b-button @click="modalShow = !modalShow">Click Here</b-button>
      <b-modal v-model="modalShow" title="SortoutCode">
        <p class="my-4">Hi everyone,</p>
        <p class="my-4">Welcome to sortoutcode.com</p>
      </b-modal>
    </div>
  </b-container>
</template>

<script>
export default {
  name: "FirstComponent",
  data(){
    return{
      modalShow: false
    }
  }
};
</script>

For now, let’s check the output.

bootstrap vue modal

All the best 👍.

Follow me on Twitter