[英]Will this error cause issues during production Nuxt3
我在下面的特定代码行中收到此错误,该代码最初在服务器上设置为一个值,然后当客户端登录时,根据其登录状态将其设置为不同的值。
[Vue warn]: Hydration text mismatch:
- Client: "Sign In"
- Server: "Sign Out"
at <RouterLink to="/auth" activeClass=undefined exactActiveClass=undefined ... >
at <NuxtLink key=0 to="/auth" onClick=fn<handleSignOut> >
at <Nav class="dark:bg-darkBg dark:text-darkSecondary" >
at <Default >
at <AsyncComponentWrapper >
at <BaseTransition mode="out-in" appear=false persisted=false ... >
at <Transition name="layout" mode="out-in" >
at <Anonymous>
at <App key=1 >
at <NuxtRoot>
我不知道为什么会这样,这里是 .vue 文件中的代码
<li class="nav-li">
<NuxtLink to="/auth" v-if="authStore.isLoggedIn" @click="handleSignOut">
Sign Out
</NuxtLink>
<NuxtLink to="/auth" v-else>Sign In</NuxtLink>
</li>
这意味着文本在服务器上被更改为“退出”,水化后变为“登录”,这是因为水化后authStore.isLoggedIn
的值发生了变化。
为了解决这个问题,您可以使用 cookie,在水合之前在服务器上设置您的身份验证状态,以及客户端处理。
可以在此处找到有关此问题的更多详细信息: https ://stackoverflow.com/a/67978474/8816585
但主要是服务器端的内容与客户端的内容不同。 作为一个快速比较,您可以使用和不使用 JS 加载应用程序的页面,看看有什么不同。
否则,这在性能方面是一个巨大的问题,并可能导致奇怪的错误。 我建议修复它。 不确定您的具体情况的确切解决方案,但authStore
可能以一种可以在服务器端和客户端工作的方式完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.