geo*_*dex 4 reactjs react-router next.js react-link next-router
我是 NextJS 的新手。我想知道 next/router 和 next/link 之间的典型变化和用例。
不同场景下应该使用哪一种?哪个做什么?例如,如果我想加载共享组件或在服务器端呈现的页面之间导航。另外,如果我调用带有普通“a”标签的页面或使用链接/路由器来实现相同的效果,有什么区别。
import { useRouter } from 'next/router'
function ActiveLink({ children, href }) {
const router = useRouter()
const style = {
marginRight: 10,
color: router.pathname === href ? 'red' : 'black',
}
const handleClick = (e) => {
e.preventDefault()
router.push(href)
}
return (
<a href={href} onClick={handleClick} style={style}>
{children}
</a>
)
}
export default ActiveLink
Run Code Online (Sandbox Code Playgroud)
import Link from 'next/link'
function Home() {
return (
<ul>
<li>
<Link href="/">
<a>Home</a>
</Link>
</li>
<li>
<Link href="/about">
<a>About Us</a>
</Link>
</li>
</ul>
)
}
export default Home
Run Code Online (Sandbox Code Playgroud)
如果我调用带有普通“a”标签的页面或使用链接/路由器来实现相同的效果,有什么区别?
普通<a>
标签和next/link
or之间的主要区别next/router
是后两者用于客户端转换。因此,普通<a>
标签将通过 http 请求加载/导航到页面,而路由器和链接则在客户端加载页面。
当还不够时,您可以使用next/router
(在组件的函数内部) ,例如,如果您需要在渲染新组件之前执行一些操作。next/link
因此,路由器和链接都有相似的行为,您可以根据您的应用程序需要执行的操作来选择使用哪一个。
两者都将运行数据获取方法(getServerSideProps
、getStaticProps
和getInitialProps
)
归档时间: |
|
查看次数: |
2898 次 |
最近记录: |