Adding a cookie consent banner
When in Europe and using cookies we need to show a cookie consent banner so our users are aware that we are using cookies on the site.
To add a cookie banner to your Nuxt.js application you can use the vue-cookieconsent-component
yarn add vue-cookieconsent-component
We then create a cookie box component with the props of message and link-label.
<template> <CookieConsent message="We use Cookies for user analysis and on-page improvements!" link-label="Learn about cookies" /></template>
And we then import our CookieConsent component.
<script> import CookieConsent from 'vue-cookieconsent-component/src/components/CookieConsent.vue' export default { components: { CookieConsent } }</script>
We then add the styles so it looks how we want it to, positioned at the top or bottom of the page.
<style> .cookie-consent { display: flex; padding: 10px; align-items: center; align-self: center; justify-content: center; border-bottom: 1px solid white; color: white; } .cookie-consent button { border: 1px solid white; padding: 10px; margin-left: 20px; min-width: 140px; }</style>
We can also add a package called VueIfBot which will hide your cookie consent for search engine crawlers.
yarn add vue-if-bot
We then wrap our CookieConsent component in the IfBot component.
<template> <VueIfBot> <CookieConsent message="We use Cookies for user analysis and on-page improvements!" link-label="Learn about cookies" /> </VueIfBot></template>
Or you could create your own content
<cookie-consent> <template slot="message"> This website uses cookies <a class="btn btn-link" href="/my-cookies">Read more</a> </template> <template slot="button"> <button class="btn btn-info">Accept</button> </template></cookie-consent>
And of course we must import it in our script tag
<script> import VueIfBot from 'vue-if-bot/dist/vue-if-bot.es' import CookieConsent from 'vue-cookieconsent-component/src/components/CookieConsent.vue' export default { components: { VueIfBot, CookieConsent } }</script>
We can then add our component to our header or footer or wherever we want to place it.
<footer> <TheCookieBox /></footer>
And that's it. we now have a cookie consent banner on our site