reactjs - 在 react 路由器 DOM 和 react Bootstrap 中,Nav.Link vs Link vs NavLink 有什么区别?

标签 reactjs react-router-dom react-bootstrap

我对这三个链接感到困惑,它们有哪些不同的使用方式?

  • 导航链接
  • 链接
  • 导航链接

它们有不同的用例吗?

最佳答案

  • Nav.Link : Nav.Link组件由 react-bootstrap 维护并默认返回 anchor ( <a /> ) 标签。
  • Link : 是一个专门的 anchor ( <a /> ) 标签,专门链接到由 react-router 维护的内部路由/react-router-dom路由器组件。它不处理外部链接。
  • NavLink : 一个<NavLink>是一种特殊的 <Link>知道它是否“活跃”。

使用 LinkNavLink当您需要链接到应用程序中的内部页面时。使用 Nav.Link来自 react-bootstrap 的组件组件 if 你已经在使用 react-bootstrap并且需要链接到外部或内部页面。

如果需要使用Nav.Link并链接到内部页面,然后传递 LinkNavLink作为 componentNav.Link组件并传递适当的所需 Prop 。

外部示例:

<Nav.Link href="https://stackoverflow.com/questions/72091197/what-is-the-difference-between-nav-link-vs-link-vs-navlink-in-react-router-dom-a" >
  Some internal link
</Nav.Link>

内部示例:

<Nav.Link
  as={Link}
  to="/internalPage"
>
  Some internal link
</Nav.Link>

注意:如果使用 LinkNavLink他们有一个不变的检查,要求他们在 react-router-dom 中使用由路由器提供的路由上下文。

关于reactjs - 在 react 路由器 DOM 和 react Bootstrap 中,Nav.Link vs Link vs NavLink 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72091197/

相关文章:

javascript - Redux:数据源实现

reactjs - 它的返回类型 'Element | undefined' 不是一个有效的 JSX 元素。类型 'undefined' 不可分配给类型 'Element | null'

即使存在,PhpStorm 也无法解析包导入(react-router-dom)

reactjs - 在 DOM 上显示之前如何定位和调整 React Bootstrap 工具提示的大小?

reactjs - react 路由器浏览器历史记录removeListen?

reactjs - React 中的状态是什么?

javascript - 无法导航到 react-router-dom URL

reactjs - useNavigate 外部功能组件 - react-router v6

reactjs - OverlayTrigger - 在 StrictMode 中不推荐使用 findDOMNode

reactjs - 为什么我不能为某些 React.Components 使用 className 属性?