[Vuejs]-Nuxt.js: add custom loading component

2👍

So you can create a custom loading:

We can create our custom component in components/loading.vue:

<template lang="html">
  <div class="loading-page" v-if="loading">
    <p>Loading...</p>
  </div>
</template>

<script>
export default {
  data: () => ({
    loading: false
  }),
  methods: {
    start () {
      this.loading = true
    },
    finish () {
      this.loading = false
    }
  }
}
</script>

<style scoped>
.loading-page {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.8);
  text-align: center;
  padding-top: 200px;
  font-size: 30px;
  font-family: sans-serif;
}
</style>

Then, we update our nuxt.config.js to tell Nuxt.js to use our component:

export default {
  loading: '~/components/loading.vue'
}

And then in your compenent you can show and hide with the:

this.$nuxt.$loading.start() to start the loading bar and this.$nuxt.$loading.finish() to finish it.

You can put this in the callbacks of a request.

1👍

probably it’s about z-index value

Leave a comment