3

安装 vue-meta 后,我的浏览器控制台出现错误。

为什么会出现这个错误?是我的代码还是错误?我正在使用vue-meta@2.4.0和 Vue 3。

在此处输入图像描述

main.js

createApp(App)
  .use(router)
  .use(VueMeta)
  .mount("#app");

应用程序.vue

<template>
  <div>
    <router-view></router-view>
  </div>
</template>

<script>
import Header from "./components/Header.vue";

export default {
  components: {
    "app-header": Header,
  },
};
</script>

主页.vue

export default {
  name: "Home",
  metaInfo() {
    return {
      title: "test meta data with vue",
      meta: [
        {
          vmid: "description",
          name: "description",
          content:
            "hello world, this is an example of adding a description with vueMeta",
        },
      ],
    };
  },
};
4

2 回答 2

4

编辑:这里正在跟踪问题https://github.com/nuxt/vue-meta/issues/628

tldr

从您的语法(即createApp(App).use(router)...等)看来,您正在使用 Vue3。vue-meta 插件是为 Vue2 开发的,在开发者创建相应的版本之前不能与 Vue3 一起使用。

原因

在 Vue3 中,api 发生了变化。app 对象被传递到插件的 install 方法中,而不是 Vue 构造函数中。

Vue 2 安装定义

install: (Vue, options) => {}

Vue 3 安装定义

install: (app, options) => { }

有一个版本 3

位于这里https://www.npmjs.com/package/vue-3-meta 但是 - 似乎包坏了。它基本上只是安装 vue-meta。

于 2020-12-04T23:33:27.350 回答
0

我认为你应该使用 metaInfo 属性:Doc

export default {
  name: "Home",
  metaInfo() {
    return {
      title: "test meta data with vue",
      metaInfo: [
        {
          vmid: "description",
          name: "description",
          content:
            "hello world, this is an example of adding a description with vueMeta",
        },
      ],
    };
  },
};
于 2020-10-01T08:26:04.453 回答