在NextJS中使用ActiveLink组件

zsohkypk  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(79)

我现在正在阅读这个页面:https://nextjs.org/docs/pages/api-reference/functions/use-router,它包含了这段代码。

import { useRouter } from 'next/router'

function ActiveLink({ children, href }) {
  const router = useRouter()
  const style = {
    marginRight: 10,
    color: router.asPath === href ? 'red' : 'black',
  }

  const handleClick = (e) => {
    e.preventDefault()
    router.push(href)
  }

  return (
    <a href={href} onClick={handleClick} style={style}>
      {children}
    </a>
  )
}

export default ActiveLink

字符串
我想要的是一些示例代码,显示如何使用这个 ActiveLink 组件。
有没有什么网站或博客在网络上,我可以找到它?

57hvy0tb

57hvy0tb1#

这段代码定义了组件<ActiveLink />,并使用useRouter()来更改页面。您可以在应用中使用该组件,如下所示:

<ActiveLink href={"/INSERT_URL_HERE"} children={"Link"} />

字符串
默认情况下,该组件的marginRight值为10,如果你已经在它链接的页面上,它将是黑色的或红色的。本质上,它与<a />相同,但已预先设置了样式。

dojqjjoe

dojqjjoe2#

你可以在一个简单的nextjs codesandbox或者你的本地机器上在线测试和渲染这个可重用的react组件,如下所示:

<ActiveLink href="/link-url">Link Label</ActiveLink>

字符串

相关问题