vue.js - Vue 路由器链接警告

标签 vue.js vuejs3 vue-component menubar primevue

大家好,我目前正在开发一个 Vuejs3 项目,并且我安装了 Primevue 我将它添加到我的 main.js 并将菜单栏导入到我的 App.vue 中。 我测试了它,我收到了这个警告,我不知道如何摆脱它,因为一切都工作正常,除了我的控制台收到垃圾邮件警告。 应用程序.vue

<template>
  <div class="card relative z-2">
    <i class="pi pi-sliders-h" @click="toggleMenu" style="font-size: 1.5rem" id="settings2" />
    <Menubar v-if="showMenu" :model="items" />
  </div>
</template>
<script>
import Menubar from 'primevue/menubar';
export default {
  name: "App",
  components: {
    Menubar,
  },
  setup() {
const showMenu = ref(false);
    const items = ref([
      {
        label: 'Colors',
        icon: 'pi pi-fw pi-palette',
        items: [
          {
            label: 'Default',
            icon: 'pi pi-fw pi-check',
            command: () => {
              updateSelectedColorPalette('default');
            },
          },
          {
            label: 'Vibrant Palette',
            icon: 'pi pi-fw pi-check',
            command: () => {
              updateSelectedColorPalette('vibrant-palette');
            },
          },
          {
            label: 'Monochromatic Palette',
            icon: 'pi pi-fw pi-check',
            command: () => {
              updateSelectedColorPalette('monochromatic-palette');
            },
          },
          {
            label: 'Contrasting Palette 1',
            icon: 'pi pi-fw pi-check',
            command: () => {
              updateSelectedColorPalette('contrasting-palette-1');
            },
          },
          {
            label: 'Contrasting Palette 2',
            icon: 'pi pi-fw pi-check',
            command: () => {
              updateSelectedColorPalette('contrasting-palette-2');
            },
          },
        ],
      },
      {
        label: 'Background',
        icon: 'pi pi-fw pi-pencil',
        items: [
          {
            label: 'white',
            icon: 'pi pi-fw pi-check',
            command: () => {
              updateBackground(false);
            },
          },
          {
            label: 'grey',
            icon: 'pi pi-fw pi-check',
            command: () => {
              updateBackground(true);
            },
          },
        ],
      }
    ]);

    function toggleMenu() {
      showMenu.value = !showMenu.value;
    }

    function updateSelectedColorPalette(value) {
      <!-- some code -->
    }

    function updateBackground(value) {
      <!-- some code -->
    }

    return {
      items,
      showMenu,
      toggleMenu,
    };
  },
};
</script>

main.js

import { createApp } from "vue";
import App from "./App.vue";
import PrimeVue from "primevue/config";
import "primevue/resources/themes/saga-blue/theme.css";
import "primevue/resources/primevue.min.css";
import "primeicons/primeicons.css";
import { createPinia } from "pinia";
import { plugin as VueTippy } from "vue-tippy";
import "tippy.js/dist/tippy.css";
import sharedFunctions from "./sharedFunctions.js";

const app = createApp(App)
  .use(createPinia())
  .use(PrimeVue)
  .use(VueTippy, {
    directive: "tippy",
    component: "tippy",
    componentSingleton: "tippy-singleton",
    defaultProps: {
      allowHTML: true,
    },
  });

for (const key in sharedFunctions) {
  app.config.globalProperties[key] = sharedFunctions[key];
}

app.mount("#app");

但是我收到此警告,当我将鼠标悬停在元素上时它会重新出现

[Vue warn]: Failed to resolve component: router-link
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
  at <MenubarSub ref=fn<bound menubarRef> id=undefined class="p-menubar-root-list"  ... > 
  at <Menubar key=0 model= 
Array [ {…}, {…} ]
 > 
  at <App> runtime-core.esm-bundler.js:41

最佳答案

我有一个使用 Primevue 的单页应用程序,不需要路由器,但菜单组件提示缺少 router-link 组件,所以我解决了安装 vue-router 并仅注册此组件会出现问题:

// main.js
import { createApp } from 'vue'
import { RouterLink } from 'vue-router';
import PrimeVue from 'primevue/config';
import App from './App.vue'

// ...

const app = createApp(App);

// register router-link so Primevue doesn't complain
app.component('router-link', RouterLink);

这样,如果您不使用路由器,则无需实际设置它。

关于vue.js - Vue 路由器链接警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76320676/

相关文章:

vue.js - 我可以动态地将计算属性插入到 Vue 组件中吗

vue.js - 将日期插入数据库后如何在vue js中显示成功消息

javascript - 需要使用 Vue.js 访问对象数组

vue.js - 使元素仅对md大小的设备可见

javascript - console.table不显示观察者

nuxt.js - 如何使用 Nuxt Content 渲染 Markdown 内容中的部分内容?

vue.js - Vue 3 - 显示加载程序,直到加载所有子组件

javascript - 注销时 vuex 为空状态

css - 如何让我的 Vue 网页填满整个视口(viewport)?

javascript - 在 Vue View 之间发送文件