[前端]我的Next.js不听话: 3招治疗Next.js Hydration failed

小编发式这是你最后一次为Next.js Hydration failed because the initial ui does not match what was rendered on the server抓铒挠塞  专攻于回字的65536种写法

招式1: 乾坤金刚无敌超威之绕过去大法

<p>
    <div>出家人不打耳光,V8在服务端和客户端对于这种情况的渲染方式不同</div>
    <h1>段落中为啥会有头条</h1>
</p>
<ul>
    <div>
        <li></li>
    </div>
</ul>
<Link><a>我要报错</a></Link>
<a><img /></a>

这些画圈圈秀腿不要尝试,不然坑定报错

如果真的要用img, 可以用background-image: url()

招式2:崁兑掰絮三方鸡肉大包之isClient宗法

// 必用
"use client"

import { Slider } from "best-slider-library"
import { useEffect, useState } from "react"

export default function Home() {
    const [isClient, setIsClient] = useState(false)

    useEffect(() => {
        // Client强触发
        setIsClient(true)
    }, [])

    return (
        ...
        { isClient && <Slider /> }
        ...
    )

}

招式3:物理校验法

服务器和客户端可能在不同的时区,所以locale, new Date(), toLocale是不work滴

开大: 寂寞了怎么办

除了isClient, 还可以用suppressHydrationWarning={true}加在<html>,但有时候它是不work的

总结

亲爱的读者们,小编在这里为大家送上一份“Next.js Hydration failed because the initial ui does not match what was rendered on the server”大餐,尽管挠塞抓铒似乎有点让人头晕,但小编信誓旦旦告诉你,这可是最后一次了!

就像写回字的65536种姿势一样,我们也在这个技术舞台上翩翩起舞,但有时候服务器和客户端的默契似乎还需要点时间。有时候它们就像两个不同频道的电视,努力想要同步但总是有一些小插曲。

所以,亲爱的读者们,请牢记:当你遇到这个“Hydration failed”的小插曲时,别慌!这只是技术的一小步,却是我们前进的一大步。犹如回字有65536种写法,技术世界也充满了无尽的可能性。

最后,别忘了点赞哦!就像你点赞这篇文章一样,让我们的技术世界更加璀璨,灿烂多彩。感谢你们一直陪伴着我们,让我们一同前行,携手迎接技术的新潮流!🚀✨

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值