Правильно ли я инициализирую vue компонент?

Всем привет! Мне кажется, что я делаю что-то не то. Я создаю компонент на vue, который рендерится в html с помощью id

#app-cart(data-url="http://localhost:3000/products")

в самом js файле я объявляю его следующим образом:

import { createApp } from "vue";
import store from "./vuex/store.js";
import cart from "./components/cart.vue";
import cartEmpty from "./components/cart-empty.vue";
import { mapActions, mapGetters } from "vuex";

document.addEventListener(
  "DOMContentLoaded",

  function() {
    let cartApp = document.querySelector("#app-cart");

    if (cartApp) {
      const app = createApp({ });

      app.component("app-cart", {
        data: () => ({
          URL: document.getElementById("app-cart").dataset.url
        }),
        components: { cart, cartEmpty },
        props: ["data-url"],
        template: `
    <cart v-if="PRODUCTS.length" :URL="URL" :CONSTANTS="CONSTANTS" />
    <cart-empty v-else />`,
        computed: {
          ...mapGetters(["PRODUCTS", "CONSTANTS"])
        },
        methods: {
          ...mapActions([
            "SET_PRODUCTS_TO_STATE",
            "DEACTIVATE_CART_STATUS",
            "DELETE_ALL_PRODUCTS_FROM_CART",
            "DEFINE_ENCODING",
            "SHOW_CART_FORM"
          ])
        },
        mounted() {
          this.SHOW_CART_FORM();
          this.SET_PRODUCTS_TO_STATE();
          this.DEFINE_ENCODING();
        }
      });

      app.use(store).mount("#app-cart");
    }
  },
  false
);

Но в консоли ошибка:

Component is missing template or render function.

Может быть ошибка в том, что я вставляю компоненты в сам шаблон? Но я не хочу полный код описывать в js файле, а хочу вынести его отдельно. В чем моя ошибка?


Ответы (0 шт):