将 Bootstrap 4 与 React 结合使用

IT技术 javascript reactjs react-bootstrap
2021-04-01 14:41:32

很抱歉我缺乏知识,但我是新手,目前正在学习 React。我只是想问一下我是否想在我的 React 应用程序中使用 Bootstrap 4,我是否必须安装 jQuery?我在某处读到将 jQuery 与 React 结合使用是不可行的。所以现在我想知道。谢谢回复。您的意见和建议真的很感激。

3个回答

某些功能(例如下拉菜单、模态)需要 JS 来操作 DOM,而 bootstrap 使用 jQuery 来处理 DOM 操作。

然而,React 使用虚拟 DOM,因此通过 jQuery 在 React 应用程序之外操作浏览器 DOM 意味着 React 可能不再处理状态、事件和 UI 渲染。React 广泛地期望/假设没有其他东西会修改 DOM。


这就是为什么推荐react-bootstrapreactstrap 的原因。CSS 保持完全相同,但重写了最初需要 jQuery 的组件。

这个 bootstrap 4 modal为例,你需要定义modalstate 来决定该 modal 是显示还是隐藏。

所以本质上这些react引导库将每个引导组件重写为一个 React 组件,CSS 明智的它完全相同。

@coder247 谢谢你的提醒。这个答案是在 react-bootstrap 只支持 bootstrap v3 时写的。我已经相应地更新了我的答案。
2021-06-17 14:41:32
react-bootstrap ( react-bootstrap.github.io ) 现在支持 bootstrap 4.5 版
2021-06-18 14:41:32

您应该考虑使用 react-bootstrap。相反,您可以使用 npm 安装它: $npm install --save react-bootstrap在此链接上了解更多信息

请记住,它使用 Bootstrap v3。

快乐编码!

有一些积极的工作可以让它与 Bootstrap 4 一起工作,并且可以在github.com/react-bootstrap/react-bootstrap/projects/1 上进行跟踪
2021-06-16 14:41:32

2020 年更新 - Bootstrap 5

Bootstrap 5 不再需要 jQuery 并且是module化的,所以你可以像任何其他 JS module一样 @import 它,这使它更容易与 React 一起使用。这也意味着你可以在没有像 reactstrap 或 react-bootstrap 这样的第三方库的情况下使用 Bootstrap

此外,您可以导入组件并直接引用它们。例如:

const popover = new Popover(document.querySelector('#myButton'), options)

这使得在 React 16.8+useEffectuseStatehooks 中使用 Bootstrap 5 变得更加容易为了避免在 React 中直接操作 DOM,使用useRef钩子获取元素实例...

function PopoverDemo() {
  const popoverRef = useRef()
  useEffect(() => {
    var popover = new Popover(popoverRef.current, {
        content: "Hello popover content!",
        title: "My Popover",
        trigger: 'hover'
    })
  })

  return (
    <div className="py-2">
        <button className="btn btn-danger" ref={popoverRef}>
            Hover for popover
        </button>
    </div>
  )
}

带有 React 演示的 Bootstrap 5