解决vue3项目中el-menu不兼容SSR问题

 更新时间:2023年12月10日 08:42:42   投稿:wdc  
这篇文章主要介绍了解决vue3项目中el-menu不兼容SSR问题,需要的朋友可以参考下

解决el-menu不兼容SSR报错

首先它会报错:Hydration completed but contains mismatches,并且发出关于 Hydration 的警告!

下面讲下我是如何一步一步解决的:

1、开始是真的不知道怎么解决,网上搜索报错信息也没有结果,只知道是 el-menu 不兼容 ssr

2、然后进入 el-plus 官网终于发现了线索:

Menu 菜单

为网站提供导航功能的菜单。

在 SSR 场景下,您需要将组件包裹在 <client-only></client-only> 之中 (如: Nuxt) 和 SSG (e.g: VitePress).

3、所以我就直接加上了 client-only 标签,结果 vue3 无法识别该标签,才发现这是基于 Nuxt 框架的标签

4、那如何让 Vue3 项目使用 client-only 呢?百度之后发现了这样一个插件 vue-client-only

这是它的 npm 链接:https://www.npmjs.com/package/vue-client-only

5、所以我立马用了起来,结果又报错了… 然后我再进入这个插件的 github 官网:https://github.com/egoist/vue-client-only ,发现这是 4年前的项目,所以这肯定只基于 vue2 不兼容 vue3 !!

6、然后就在我又又又不知道怎么办的时候,我点开了这个项目的 Issues ,发现已经有人问了一个问题

Is there a need to update component for usage with Vue 3? #122

下面这个回答终于拯救了我!

I created a small package for those who want to use the client-only component with Vue 3 outside a Nuxt project.
Check it here https://github.com/duannx/vue-client-only

7、进入他封装好且基于 Vue3 的 vue-client-only :https://github.com/duannx/vue-client-only

然后按照使用教程来就解决报错了!!!!

npm install --save @duannx/vue-client-only

import ClientOnly from '@duannx/vue-client-only'
<client-only>
    <el-menu
        :default-active="activeIndex"
        mode="horizontal"
        @select="handleSelect"
    >
        <el-menu-item index="orders">{{ t('header.orders') }}</el-menu-item>
        <el-menu-item index="records">{{ t('header.records') }}</el-menu-item>


        <el-sub-menu index="language">
            <template #title>{{ t('header.language') }}</template>
            <el-menu-item index="zh">简体中文</el-menu-item>
            <el-menu-item index="en">English</el-menu-item>
        </el-sub-menu>


        <el-menu-item index="logout" v-if="userStatus">
            {{ t("login.logout") }}
        </el-menu-item>


        <el-menu-item index="login" v-if="!userStatus">
            {{ t("login.loginTab") }}/{{ t("login.signTab") }}
        </el-menu-item>

    </el-menu>
</client-only>

以上就是解决vue3项目中el-menu问题的详细内容,更多关于el-menu不兼容SSR问题的资料请关注脚本之家其它相关文章!

相关文章

  • vue3+vite项目跨域配置踩坑实战篇

    vue3+vite项目跨域配置踩坑实战篇

    vue3是一个流行的前端框架,vite是一个快速的构建工具,下面这篇文章主要给大家介绍了关于vue3+vite项目跨域配置踩坑实战的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • vue计算属性时v-for处理数组时遇到的一个bug问题

    vue计算属性时v-for处理数组时遇到的一个bug问题

    这篇文章主要介绍了在做vue计算属性,v-for处理数组时遇到的一个bug 问题,需要的朋友可以参考下
    2018-01-01
  • Vue使用moment处理不同时区的时间的操作方法

    Vue使用moment处理不同时区的时间的操作方法

    这篇文章主要介绍了如何在Vue项目中使用moment和moment-timezone插件处理时区,包括安装依赖、基础使用方法(如时区转换)、全局挂载以及注意事项(如时区标识规范、UTC时间处理和Vue3适配),需要的朋友可以参考下
    2026-03-03
  • Vue中代码传送(teleport)的实现

    Vue中代码传送(teleport)的实现

    本文主要介绍了Vue中代码传送(teleport)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • web项目开发中2个Token原因解析及示例代码

    web项目开发中2个Token原因解析及示例代码

    这篇文章主要介绍了web项目开发中会出现2个Token原因的解析以及实现的示例代码,有需要的同学可以借鉴参考下,希望可以有所帮助
    2021-09-09
  • vue配置font-awesome5的方法步骤

    vue配置font-awesome5的方法步骤

    这篇文章主要介绍了vue配置font-awesome5的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • vue3 ref 和reactive的区别详解

    vue3 ref 和reactive的区别详解

    本文主要介绍了vue3 ref 和reactive的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 一文快速详解前端框架 Vue 最强大的功能

    一文快速详解前端框架 Vue 最强大的功能

    组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。这篇文章主要介绍了一文快速详解前端框架 Vue 最强大的功能,需要的朋友可以参考下
    2019-05-05
  • 应用provide与inject刷新Vue页面方法

    应用provide与inject刷新Vue页面方法

    这篇文章主要介绍了应用provide与inject刷新Vue页面的两种方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,多多进步,祝大家早日升职加薪
    2021-09-09
  • Vue.js按键修饰符及v-model修饰符示例详解

    Vue.js按键修饰符及v-model修饰符示例详解

    这篇文章主要介绍了Vue.js按键修饰符及v-model修饰符,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05

最新评论