0.1.0 • Published 4 years ago

vue-dialog-manager v0.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

vue-dialog-manager

installing

Using npm:

npm install vue-dialog-manager

Example

1. Import

import DialogManager from 'vue-dialog-manager';

or

let DialogManager = require('vue-dialog-manager');

2. Showing

First you make your dialog.vue:

dialog.vue

<template>
  <h1>Insert Title</h1>
  <div>this is dialog</div>
</template>
<script>
export default {
}
</script>

You can display dialog as follow:

<script>
import Dialog from 'dialog.vue';
import DialogManager from 'vue-dialog-manager';
export default {
  methods: {
   show() {
    let instance = DialogManager.create(Dialog);
    instance.show();
   }
  },
}
</script>

3. Props data

If you hope to insert data, you can do right this:

dialog.vue

<template>
  <h1>{{title}}</h1>
  <div>this is dialog</div>
</template>
<script>
export default {
  props: ['title']
}
</script>

index.vue

<script>
import DialogManager from 'vue-dialog-manager';
import Dialog from 'dialog.vue';

export default {
  methods: {
   show () {
    DialogManager.create(Dialog, {
      props: {
        title: 'Dialog title'
      }
    })
   }
  }
}
</script>

4. Using vuex

You can also use 'vuex' as follow:

<script>
import DialogManager from 'vue-dialog-manager';
import Dialog from 'dialog.vue';

export default {
  methods: {
   show() {
      DialogManager.create(Dialog, {store: this.$store}).show()    
   }
  },
}
</script>

5. Dismiss

If you close dialog, All you have to do is call dismiss().

First, instance.dismiss();

Second, call dismiss() inside dialog.vue

dialog.vue

<template>
  <h1>Insert Dialog title</h1>
  <div>this is dialog</div>
  <button @click="close">close</button>
</template>
<script>
export default {
  methods: {
   close () {
    this.dismiss();
   }
  },
}
</script>

instance equals this of dialog.vue

6. callback

You can return data when you close dialog

dialog.vue

<template>
  <h1>Insert Dialog title</h1>
  <div>this is dialog</div>
  <button @click="close">close</button>
</template>
<script>
export default {
  methods: {
   close () {
    this.dismiss('Insert your data');
   }
  },
}
</script>

index.vue

<script>
import DialogManager from 'vue-dialog-manager';
import Dialog from 'dialog.vue';

export default {
  methods: {
   show() {
      let instance = DialogManager.create(Dialog, {store: this.$store});
      instance.show().then((data) => {
        console.log('data from dialog.vue : ', data);
    })
   }
  }
}
</script>

If you use ECMAScript 2017:

index.vue

<script>
import DialogManager from 'vue-dialog-manager';
import Dialog from 'dialog.vue';

export default {
  methods: {
   async show() {
      let instance = DialogManager.create(Dialog, {store: this.$store});
      let data = await instance.show();
      console.log('data from dialog.vue : ', data);
   }
  }
}
</script>

License

MIT

0.1.0

4 years ago

0.0.11

4 years ago

0.0.10

4 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago