解决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问题的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Nuxt.js部署及踩过的坑

    详解Nuxt.js部署及踩过的坑

    这篇文章主要介绍了详解Nuxt.js部署及踩过的坑,Nuxt.js 提供了两种发布部署应用的方式:服务端渲染应用部署 和 静态应用部署。本文主要说说服务端渲染应用部署,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Vue将将后端返回的list数据转化为树结构的实现

    Vue将将后端返回的list数据转化为树结构的实现

    本文主要介绍了Vue将将后端返回的list数据转化为树结构的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • vue中关于trigger的用法

    vue中关于trigger的用法

    这篇文章主要介绍了vue中关于trigger的用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 前端自动化测试Vue中TDD和单元测试示例详解

    前端自动化测试Vue中TDD和单元测试示例详解

    这篇文章主要为大家介绍了前端自动化测试Vue中TDD和单元测试示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 解决vue路由组件vue-router实例被复用问题

    解决vue路由组件vue-router实例被复用问题

    这篇文章介绍了解决vue路由组件vue-router实例被复用的问题,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Vue实现红包雨小游戏的示例代码

    Vue实现红包雨小游戏的示例代码

    红包也叫压岁钱,是过农历春节时长辈给小孩儿用红纸包裹的礼金。本文将通过Vue制作一个红包雨小游戏,文中的示例代码讲解详细,需要的可以参考一下
    2022-01-01
  • 通过debug搞清楚.vue文件如何变成.js文件(案例详解)

    通过debug搞清楚.vue文件如何变成.js文件(案例详解)

    这篇文章主要介绍了通过debug搞清楚.vue文件如何变成.js文件,本文以@vitejs/plugin-vue举例,通过debug的方式带你一步一步的搞清楚vue文件是如何编译为js文件的,需要的朋友可以参考下
    2024-07-07
  • uniapp使用条件编译#ifdef(跨平台设备兼容)

    uniapp使用条件编译#ifdef(跨平台设备兼容)

    这篇文章主要介绍了uniapp使用条件编译#ifdef(跨平台设备兼容),需要的朋友可以参考下
    2022-12-12
  • vue实现组件切换效果的三种功能

    vue实现组件切换效果的三种功能

    这篇文章主要为大家介绍了在Vue中实现组件切换的三种方法,即使用条件渲染,使用动态组件以及通过点击按钮切换组件,有需要的小伙伴可以了解下
    2024-11-11
  • Vue路由切换和Axios接口取消重复请求详解

    Vue路由切换和Axios接口取消重复请求详解

    在web项目开发的过程中,经常会遇到客服端重复发送请求的场景,下面这篇文章主要给大家介绍了关于Vue路由切换和Axios接口取消重复请求的相关资料,需要的朋友可以参考下
    2022-05-05

最新评论