Alerts and Messages is an integral part in any Vuejs application, in this article i will demonstrate how to display toast messages and alerts in vuejs framework.
To display toast messages in vuejs we will use vue-toastr plugin, you can find it in github.
Toastr Installation
To use toastr directly in browser via cdn:
<script src="https://unpkg.com/vue/dist/vue.js"></script> <script src="https://unpkg.com/vue-toastr/dist/vue-toastr.umd.min.js"></script>
To install with npm
npm install vue-toastr
To install with yarn
yarn add vue-toastr
Importing and Using Toastr
To use vue-toastr as a plugin you have to import and use it like this:
import Vue from "vue"; import App from "./App.vue"; // import plugin import VueToastr from "vue-toastr"; // use plugin Vue.use(VueToastr);
Then you have two choices whether to use as a plugin or as a component:
Using Vue-Toastr as a Plugin
To use vue-toastr as a plugin you have to import and use it like this:
import Vue from "vue"; import App from "./App.vue"; // import plugin import VueToastr from "vue-toastr"; // use plugin Vue.use(VueToastr, { /* OverWrite Plugin Options if you need */ }); new Vue({ render: h => h(App), mounted() { // then you can call toastr this.$toastr.s( "Hello world" ); } }).$mount("#app");
Then you can access $toastr instance in any component like this:
<template> <div> <a href="#" v-on:click.prevent="showSuccessToast">Display toast</a> </div> </template> <script> export default { methods: { showSuccessToast() { this.$toastr.s("Success", "Hello world"); } } } </script>
Â
Using Vue-Toastr as a Component
<div id="#app"> <!-- Your vue application --> <vue-toastr ref="mytoast"></vue-toastr> </div> import Vue from "vue"; import App from "./App.vue"; // import plugin import VueToastr from "vue-toastr"; // register component Vue.component("vue-toastr", VueToastr); new Vue({ render: h => h(App), components: { // "vue-toastr": VueToastr, // VueToastr, }, mounted() { this.$refs.mytoast.s( "Hello world" ); } }).$mount("#app");
Creating Toast
To display a toast message vue-toast provides a variety of methods of different scenarios such as success or errors:
this.$toastr.s("SUCCESS MESSAGE", "Success Toast Title"); this.$toastr.e("ERRROR MESSAGE"); this.$toastr.w("WARNING MESSAGE"); this.$toastr.i("INFORMATION MESSAGE");
In addition to these methods vue-toast provides the Add method which gives you more control over toast display:
this.$toastr.Add({ name: "UniqueToastName", title: "Success", // Toast Title msg: "Operation done successfully", // Toast Message clickClose: false, // Click Close Disable timeout: 0, // Remember defaultTimeout is 5 sec.(5000) in this case the toast won't close automatically position: "toast-top-full-width", // Toast Position. type: "success", // Toast type, style: { backgroundColor: "blue", width: "150px" } });
Â
Removing Toast
It’s supposed that toast messages closed automatically after some seconds but you can explicitly call some helper methods to remove toast.
this.$toastr.Close(toast instance); // remove toast this.$toastr.removeByName("UniqName"); // remove toast by name this.$toastr.removeByType("error");
For more details about vue-toast take a look at the docs.
Display Swal Messages in Vue-js
The second plugin in this tutorial is vue-swal, this is a wrapper of the Sweet Alert javascript plugin.
Â
Installation
To install with npm
npm install vue-swal
To install with yarn
yarn add vue-swal
Usage
import Vue from 'vue' import VueSwal from 'vue-swal' Vue.use(VueSwal)
App.vue
export default { methods: { alert() { this.$swal('Hello word!') } } }
Examples:
– Text
export default { methods: { alert() { this.$swal({ text: "Hello world!", }); } } }
- Title
export default { methods: { alert() { this.$swal({ title: "Hello world!", }); } } }
With icon:
icons such as “success”, “error”, “warning”,”info”
export default { methods: { alert() { this.$swal({ icon: "success" }); } } }
Button
export default { methods: { alert() { this.$swal({ icon: "success", button: { { text: "OK", value: true, visible: true, className: "", closeModal: true, } } }); } } }
Buttons
export default { methods: { alert() { this.$swal({ icon: "success", buttons: { cancel: { text: "Cancel", value: null, visible: false, className: "", closeModal: true, }, confirm: { text: "OK", value: true, visible: true, className: "", closeModal: true } } }); } } }
For the full list of the available options and examples refer to SweetAlert docs.