Hydration completed but contains mismatches

用 vue 做了一个保存页面历史记录的功能,测试环境 npm run dev好使,npm run build到生产环境就不生效了

复制代码
    router.afterEach((to) => {
      if (typeof window !== "undefined") {
        localStorage.setItem('to.path', to.fullPath);
      }
    });
    router.beforeEach((to, from, next) => {
      if (typeof window !== "undefined") {
        const topath = localStorage.getItem('to.path');
        if (to.fullPath === '/' && from.fullPath === '/' && topath) {
          router.push(topath);
        }
      }
      next();
    });

报错:Hydration completed but contains mismatches

并且页面显示内容错乱:标题是第二页,内容是首页。

猜测到是因为router.push重新跳转的问题,但不知道怎么修改,最后测试改成下面这样好使。

复制代码
    router.afterEach((to, from) => {
      if (typeof window !== "undefined") {
        const topath = localStorage.getItem('to.path');
        if (to.fullPath === '/' && from.fullPath === '/' && topath && topath !== '/') {
          router.push({path: topath});
        } else {
          localStorage.setItem('to.path', to.fullPath);
        }
      }
    });

topath !== '/' 是为了避免死循环。问题解决。

相关推荐
尾善爱看海2 小时前
《JavaScript 数组操作全攻略:12 类 API + 30 个实战场景 + 20 个避坑指南》
前端·javascript·面试
OpsEye3 小时前
为什么你的 Agent 莫名烧钱?聊聊循环调用的兜底方案
javascript·ai编程
linux_cfan3 小时前
16 · `custom-media-element`:属性拦截与转发
前端·javascript·音视频
右耳朵猫AI3 小时前
Web前端周刊2026W38 | React 19.3 发布、StyleX 深潜、jsdom 30.1 提速
前端·javascript·react.js·typescript·node.js
落魄大学生之流水线上谋生计3 小时前
GreenLife Carbon · OpenHarmony 智慧低碳生态平台
javascript
福兮说4 小时前
用 IndexedDB 存用户的文件,我踩过的五个坑
前端·javascript
胡志辉的博客5 小时前
【完全开源】IP 纯净度检测 可一键部署到自己的CF
前端·javascript·chrome·ip·chromium
Hilaku5 小时前
作为面试官,我最怕遇到什么样的候选人?
前端·javascript·程序员
溪语流沙5 小时前
Django + Vue电商项目第001讲:开篇|注册登录加增删改查,那不是电商
redis·python·mysql·docker·typescript·django·vue
程序员阿黄6 小时前
基于 Django 与 Vue 3 的智能实验室预约系统设计与实现
后端·python·mysql·django·vue·毕设