如何在不丢失 header 组件状态的情况下在 nextjs 中导航
How to navigate in nextjs without losing state of header component
有什么方法可以create/structure next.js 应用导航而不丢失 header 组件状态?
让我解释一下。
我有 header 个这样的组件:
import { useState } from "react"
import Link from 'next/link'
export const Header = () => {
const [value, setValue] = useState(1)
return (
<header>
HEADER
<button onClick={() => setValue(value + 1)}>
{value}
</button>
<ul>
<li>
<Link href="/">
<a>Home</a>
</Link>
</li>
<li>
<Link href="/test">
<a>About Us</a>
</Link>
</li>
</ul>
</header>
)
}
export default Header
有一个简单的计算器。
我有两个页面。
索引:
const Home = () => (
<div className="container">
<Header />
<main>
Index
</main>
</div>
)
测试:
import Head from 'next/head'
import Header from '../components/header'
const Home = () => (
<div className="container">
<Header />
<main>
Test
</main>
</div>
)
export default Home
我想在这些页面之间导航而不丢失 header 组件的状态。有可能吗?
您可以做的一件事是将整个 Next.js 应用程序包装在包含 <Header/>
的布局组件中。查看我创建的这个沙箱,了解如何将此模式应用于您问题中的示例:
https://codesandbox.io/s/so-q-63755826-b-forked-7xt6u
查看这篇很棒的文章,它解释了这种模式以及在 Next.js 中持久布局的一些其他解决方案:
https://adamwathan.me/2019/10/17/persistent-layout-patterns-in-nextjs/
有什么方法可以create/structure next.js 应用导航而不丢失 header 组件状态?
让我解释一下。
我有 header 个这样的组件:
import { useState } from "react"
import Link from 'next/link'
export const Header = () => {
const [value, setValue] = useState(1)
return (
<header>
HEADER
<button onClick={() => setValue(value + 1)}>
{value}
</button>
<ul>
<li>
<Link href="/">
<a>Home</a>
</Link>
</li>
<li>
<Link href="/test">
<a>About Us</a>
</Link>
</li>
</ul>
</header>
)
}
export default Header
有一个简单的计算器。
我有两个页面。 索引:
const Home = () => (
<div className="container">
<Header />
<main>
Index
</main>
</div>
)
测试:
import Head from 'next/head'
import Header from '../components/header'
const Home = () => (
<div className="container">
<Header />
<main>
Test
</main>
</div>
)
export default Home
我想在这些页面之间导航而不丢失 header 组件的状态。有可能吗?
您可以做的一件事是将整个 Next.js 应用程序包装在包含 <Header/>
的布局组件中。查看我创建的这个沙箱,了解如何将此模式应用于您问题中的示例:
https://codesandbox.io/s/so-q-63755826-b-forked-7xt6u
查看这篇很棒的文章,它解释了这种模式以及在 Next.js 中持久布局的一些其他解决方案:
https://adamwathan.me/2019/10/17/persistent-layout-patterns-in-nextjs/