Source: views/Home/Home_backup.vue

<template>
  <v-container class="text-center pa-0" fluid>
    <Carousel />
    <InfoBlock class="mb-12" />
    <SearchBlock />
    <CategoryBlock class="mt-12" />
    <CommunityBlock class="mt-12" />
    <v-lazy>
      <ClientOnly>
        <StatisticsBlock class="my-12" />
      </ClientOnly>
    </v-lazy>

    <ClientOnly>
      <component :is="'script'" type="application/ld+json">
        <span v-safe-html="JSONLD" />
      </component>
    </ClientOnly>
  </v-container>
</template>

<script>
import Carousel from "@/components/Home/Carousel";
import CategoryBlock from "@/components/Home/CategoryBlock";
import CommunityBlock from "@/components/Home/CommunityBlock";
import InfoBlock from "@/components/Home/InfoBlock";
import SearchBlock from "@/components/Home/SearchBlock";
import StatisticsBlock from "@/components/Home/StatisticsBlock";
import RestClient from "@/lib/Client/RESTClient.js";
import {ClientOnly} from "vike-vue/ClientOnly";

const restClient = new RestClient();

/** Component to handle the front page (landing page)
 *
 */
export default {
  name: "Home",
  components: {
    Carousel,
    InfoBlock,
    SearchBlock,
    CategoryBlock,
    StatisticsBlock,
    CommunityBlock,
    ClientOnly,
  },
  data() {
    return {
      JSONLD: {},
    };
  },
  mounted() {
    this.getJsonld();
  },
  unmounted() {
    if (typeof window !== "undefined" && this.$scrollTo) {
      this.$scrollTo("body", 0, {});
    }
  },
  methods: {
    async getJsonld() {
      this.JSONLD = await restClient.getHomepageJsonld();
    },
  },
};
</script>