v-snackbars v3.2.8
v-snackbars
Display the v-snackbar (from Vuetify) with a stack display
Requirements
Vuetify > v2.3 (it may work with an earlier version of Vuetify but I haven't tested)
Install
npm install v-snackbarsDemo
See it in action: https://codesandbox.io/s/v-snackbars-demo-8xrbr?file=/src/App.vue
How to use
import VSnackbars from "v-snackbars"
export default {
components:{
"v-snackbars": VSnackbars
},
[…]
}<v-snackbars :messages.sync="messages"></v-snackbars>You need to provide a messages array. Using a push on the array will cause the text to be shown in a snackbar.
For example, to display "This is a message", just do the below:
this.messages.push("This is a message");You can use the same options as the v-snackbar. For example:
<v-snackbars :messages.sync="messages" :timeout="10000" bottom left color="red"></v-snackbars>Options
Snackbar Options
The same v-snackbar options should be applicable, like bottom, right, left, top, color, timeout, ….
Personalized content
You can use v-slot:default to customize the content of the snackbar.
For example:
<v-snackbars :messages.sync="messages" :timeout="-1" color="black" top right>
<template v-slot:default="{ message, id, index }">
<h3 class="mb-2">Header</h3>
{{ message }}
</template>
</v-snackbars>The parameter:
message: the current message that is displayed in the notificationid: the unique key/id of the messageindex: the index in the array of notifications/messages
Personalized button
A close button is used by default. If you prefer to define your own action button, you can use a v-slot:action.
For example:
<v-snackbars :messages.sync="messages" :timeout="-1" color="black" top right>
<template v-slot:action="{ close, index, message, id }">
<v-btn text @click="close()">Dismiss</v-btn>
</template>
</v-snackbars>By clicking on Dismiss, it will remove the related snackbar.
The parameters:
close: the function to remove a notificationindex: the index in the array of notifications/messagesmessage: the current message that is displayed in the notificationid: the unique key/id of the message
Objects
If you want to customize each snackbar, you can also pass a objects instead of messages, which will contain the various props (like message, color, timeout, transition, contentClass or the position).
In the JavaScript code:
this.objects.push({
message:"Success",
color:"green",
timeout:5000
})
this.objects.push({
message:"Error",
color:"red",
timeout:-1
})In your Vue template:
<v-snackbars :objects.sync="objects"></v-snackbars>Check the "Random Toast" button on the demo.
Interactivity
You can add some layers of interactivity with the messages.
For example, you can change the text by doing:
this.$set(this.messages, i, "New message to display");To remove a notification, you'll have to use splice:
this.messages.splice(i, 1);Check the "Show Interactivity" button on the demo.
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago