我试图了解如何使用服务器组件处理模式打开/关闭。以前,对于客户端组件,我只需将状态提升到我的Layout:
export default function Layout({ children }) {
const [showPopup, setShowPopup] = useState(true)
return (
<>
<Popup showPopup={showPopup} setShowPopup={setShowPopup} />
<div>{children}</div>
</>
)
Run Code Online (Sandbox Code Playgroud)
然后根据这个状态显示/隐藏我的弹出窗口。但是,对于服务器组件,我不能再这样做了。为了使其工作,我需要"use client"在顶部将其设为客户端组件,但随后整个应用程序将成为客户端组件(因为这是我的根布局)。
我希望根布局成为一个服务器组件,以允许应用程序利用基础设施来实现更好的性能和整体用户体验。
那么,如何在不依赖 useState 和客户端组件的情况下处理显示或隐藏模式呢?这种情况很常见,我可能遗漏了一些明显的东西,但我找不到答案。