Implementing a notification badge in Vue.js involves creating a component that displays the badge and updating it based on your application's notification state. Here's a simple example to get you started:
html<!-- NotificationBadge.vue -->
<template>
<div class="notification-badge" v-if="notificationCount > 0">
{{ notificationCount }}
</div>
</template>
<script>
export default {
props: {
notificationCount: {
type: Number,
default: 0,
},
},
};
</script>
<style scoped>
.notification-badge {
position: absolute;
top: 0;
right: 0;
background-color: red;
color: white;
padding: 0.2em 0.5em;
border-radius: 50%;
font-size: 0.8em;
}
</style>
Assuming you have a parent component where you manage the state of your notifications:
html<!-- ParentComponent.vue -->
<template>
<div>
<!-- Your main content here -->
<!-- Include the NotificationBadge component with the notification count -->
<notification-badge :notificationCount="notificationCount" />
<!-- Add a button to simulate adding notifications -->
<button @click="addNotification">Add Notification</button>
</div>
</template>
<script>
import NotificationBadge from "@/components/NotificationBadge.vue";
export default {
components: {
NotificationBadge,
},
data() {
return {
notificationCount: 0,
};
},
methods: {
addNotification() {
this.notificationCount += 1;
},
},
};
</script>
In this example, when you click the "Add Notification" button, the addNotification
method is called, which increments the notificationCount
. The NotificationBadge
component is used to display the badge, and it only appears when there are notifications (i.e., notificationCount
is greater than 0).
You can customize the appearance and behavior of the badge based on your application's requirements. Additionally, you might want to integrate this with your notification system to reflect the actual count of unread notifications.