search

Home  >  Q&A  >  body text

Nuxt.js: window is not defined apexcharts/vue-apexcharts

I added this simple example from apexcharts.com. Pretty sure the import is correct. I don't reference window anywhere. When adding this file my entire application stops. I believe this has something to do with SSR or Nuxt configuration.

<template>
  <div id="chart">
    <apexchart
      type="donut"
      width="380"
      :options="chartOptions"
      :series="series"
    ></apexchart>
  </div>
</template>

<script>
import VueApexCharts from "vue-apexcharts";

export default {
  name: "Donut",
  components: {
    apexchart: VueApexCharts,
  },
  data() {
    return {
      data: {
        series: [44, 55, 41, 17, 15],
        chartOptions: {
          chart: {
            type: "donut",
          },
          responsive: [
            {
              breakpoint: 480,
              options: {
                chart: {
                  width: 200,
                },
                legend: {
                  position: "bottom",
                },
              },
            },
          ],
        },
      },
    };
  },
};
</script>


P粉366946380P粉366946380470 days ago854

reply all(2)I'll reply

  • P粉946437474

    P粉9464374742023-11-10 14:41:58

    Wrap your component in nuxt's <client-only> component. This will prevent SSR/SSG from breaking when trying to reference a non-existent window object.

    For example

    
      
    
    

    reply
    0
  • P粉834840856

    P粉8348408562023-11-10 09:34:40

    As explained in my linked answer (last sentence, using direct component syntax), here's how to make a correct working setup:

    
    
    sssccc
    

    I also removed a data which nested the entire configuration, already inside data(). This resulted in a props mismatch, as shown in the browser console error.

    reply
    0
  • Cancelreply