Installation
Vue Modal 2 currently is only available in Vue 2x. We are working to make it available for Vue 3x.
yarn add @burhanahmeed/vue-modal-2
or
npm install @burhanahmeed/vue-modal-2
Usage
How to use it in Vue 2.x
CLI
import Vue from "vue";
import App from "./App.vue";
import Modal from "@burhanahmeed/vue-modal-2";
Vue.use(Modal);
Vue.config.productionTip = false;
new Vue({
render: (h) => h(App)
}).$mount("#app");
Usage in vue. If you didn't specify options.componentName, by default it will be <vue-modal-2></vue-modal-2>
<template>
<vue-modal-2 name="modal-1" @on-close="close">
Hello From Inside Modal Component
</vue-modal-2>
</template>
API usage
methods: {
open () {
this.$vm2.open('modal-1')
},
close () {
this.$vm2.close('modal-1')
}
}
Typescript
For typescript you can use (this as any). Please refer to this issue.
Nuxt
For Nuxtjs, use it as plugin with client mode.
Required
As of now, you need wrap <vue-modal-2/> with <client-only/>. It will avoid you from unrendered modal component during build or generate process.
Browser module
If you are using browser ESM feature you can use it as javascript module.
<script type="module">
import Vue from "https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.esm.browser.js";
import VueModal from "https://unpkg.com/@burhanahmeed/vue-modal-2/dist/vue-modal-2.esm.js";
Vue.use(VueModal, {
componentName: "ModalVue"
});
var app = new Vue({
el: "#app",
data: {
message: "Hello Vue!"
}
});
</script>
options
vue-modal-2 also accept options in .use() function as second argument.
options.componentName
- type:
String - default:
vue-modal-2
Vue.use(Modal. {
componentName: 'MyModal'
});
<template>
<my-modal name="modal-1" @on-close="close">
Hello From Inside Modal Component
</my-modal>
</template>