本文概述
- 1.安装React Bootstrap
- 2.定义你的Bootstrap主题
- 3.在React中使用Bootstrap组件
【如何在ReactJS中使用Bootstrap 3的组件】随着ReactJS的引入, 许多开发人员在日常开发过程中将其用作默认工具。这就意味着jQuery至少在开发非常动态的Web应用程序方面是有利的。但是, 用Bootstrap做什么jQuery?好吧, jQuery是使Bootstrap组件正常工作所必需的, 这是另一个问题, 原始的Bootstrap库使用浏览器的本机DOM, React实现了虚拟DOM。因此, 为了解决所有这些不便之处, 并保持使用Bootstrap作为UI基础的简单传统, 编写了React的bootstrap库。
这个库可以帮助你以React的方式工作, 同时使用强大且易于使用的Bootstrap功能。
1.安装React Bootstrap React Bootstrap模块将所有Bootstrap 3组件实现为React组件, 因此它们可以轻松地嵌入到你的应用程序中。它不依赖jQuery, 因此你的代码将尽可能保持简洁。
要安装它, 请使用终端切换到项目目录, 并执行以下命令进行安装:
npm install react-bootstrap
安装后, 你将能够需要原始Bootstrap库必须提供的任何组件。有关此库的更多信息, 请访问Github上的官方存储库。
2.定义你的Bootstrap主题 如你所知, 每个人都可以创建自己的boostrap主题, 或者仅使用默认主题。按照这个简单的指导方针, React-Bootstrap不依赖于任何版本的Bootstrap CSS, 也不实现自己的版本。显然, 你需要添加一些CSS以使Component看起来不错, 但这完全取决于你。最简单的方法是使用免费CDN(默认的且众所周知的基本Bootstrap主题)中的任何版本的Bootstrap CSS:
<
!-- The default CSS of Bootstrap -->
<
link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
或者, 你可以使用Bootswatch很棒的免费Bootstrap主题集合中的主题, 例如” United” , 它看起来比Bootstrap的默认主题好很多:
文章图片
该过程非常简单, 只需在文档的head标记中包含一个CSS文件, 就可以开始了:
<
!doctype html>
<
html lang="en">
<
head>
<
meta charset="utf-8">
<
title>
My Awesome React App<
/title>
<
meta name="viewport" content="width=device-width, initial-scale=1">
<
!-- Include some Bootstrap CSS Theme -->
<
link href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/united/bootstrap.min.css" rel="stylesheet" integrity="sha384-pVJelSCJ58Og1XDc2E95RVYHZDPb9AVyXsI8NoVpB2xmtxoZKJePbMfE4mlXw7BJ" crossorigin="anonymous">
<
/head>
<
body>
<
div class="container">
<
div id="app">
Loading...<
/div>
<
/div>
<
script type="text/javascript" src="http://www.srcmini.com/bundle.js">
<
/script>
<
/body>
<
/html>
这样, 现在你在React中的组件将看起来应有的样子。或者, 你可以配置webpack以包括和转换bootstrap的SASS源文件, 以便你可以根据需要配置和修改Bootstrap的样式。
3.在React中使用Bootstrap组件 作为React中的一种典型方法, 每个Bootstrap组件都可以从库中导入:
布局
Bootstrap最令人敬畏的功能之一是其革命性的布局网格系统。网格系统用于通过一系列容纳你的内容的行和列来创建页面布局。通常, 引导程序的每一行都包裹在普通容器或流体容器中。在React版本中, 这些组件被命名为Grid, 可以通过以下方式使用:
import Grid from 'react-bootstrap/lib/Grid';
const Container = ({/* Normal BS would be: <
div class="container">
<
/div>
*/}<
Grid>
<
/Grid>
);
const ContainerFluid = ({/* Normal BS would be: <
div class="container-fluid">
<
/div>
*/}<
Grid fluid={true}>
<
/Grid>
);
接下来是定义水平div的Row组件, 你可以在其中放置一些列:
import Row from 'react-bootstrap/lib/Row';
const MyRow = ({/* Normal BS would be: <
div class="row">
<
/div>
*/}<
Row>
<
/Row>
);
最后是广为人知的引导程序响应列
import Grid from 'react-bootstrap/lib/Grid';
import Row from 'react-bootstrap/lib/Row';
import Col from 'react-bootstrap/lib/Col';
const MyAwesomeLayout = (<
Grid>
<
Row>
<
Col xs={12} md={8}>
{/* Some content */}<
/Col>
<
Col xs={6} md={4}>
{/* Some content */}<
/Col>
<
/Row>
<
Row>
<
Col xs={6} md={4}>
{/* Some content */}<
/Col>
<
Col xs={6} md={4}>
{/* Some content */}<
/Col>
<
Col xsHidden md={4}>
{/* Some content */}<
/Col>
<
/Row>
<
Row>
<
Col xs={6} xsOffset={6}>
{/* Some content */}<
/Col>
<
/Row>
<
Row>
<
Col md={6} mdPush={6}>
{/* Some content */}<
/Col>
<
Col md={6} mdPull={6}>
{/* Some content */}<
/Col>
<
/Row>
<
/Grid>
);
纽扣
Bootstrap提供了不同样式的按钮, 这些按钮可以与React一样轻松地使用。使用普通引导程序, 你只需要提供一个类来定义按钮的样式, 现在在ReactJS中, 你可以使用bsStyle属性设置其类型:
import ButtonToolbar from 'react-bootstrap/lib/ButtonToolbar';
import Button from 'react-bootstrap/lib/Button';
const buttonsInstance = (<
ButtonToolbar>
{/* Standard button */}<
Button>
Default<
/Button>
{/* Provides extra visual weight and identifies the primary action in a set of buttons */}<
Button bsStyle="primary">
Primary<
/Button>
{/* Indicates a successful or positive action */}<
Button bsStyle="success">
Success<
/Button>
{/* Contextual button for informational alert messages */}<
Button bsStyle="info">
Info<
/Button>
{/* Indicates caution should be taken with this action */}<
Button bsStyle="warning">
Warning<
/Button>
{/* Indicates a dangerous or potentially negative action */}<
Button bsStyle="danger">
Danger<
/Button>
{/* Deemphasize a button by making it look like a link while maintaining button behavior */}<
Button bsStyle="link">
Link<
/Button>
<
/ButtonToolbar>
);
模态
以下组件创建一个单击时显示模式的按钮。单击关闭按钮后, 对话框将自动关闭:
import React from 'react';
import Modal from 'react-bootstrap/lib/Modal';
import Button from 'react-bootstrap/lib/Button';
export default class App extends React.Component {constructor(props, context) {super(props, context);
// Handle statethis.state = {show: false};
}render() {// Close the dialoglet close = () =>
{this.setState({ show: false});
};
return (<
div className="modal-container" style={{ height: 200 }}>
<
ButtonbsStyle="primary"bsSize="large"onClick={() =>
this.setState({ show: true })}>
Launch contained modal<
/Button>
<
Modalshow={this.state.show}onHide={close}container={this}aria-labelledby="contained-modal-title">
<
Modal.Header closeButton>
<
Modal.Title id="contained-modal-title">
Contained Modal<
/Modal.Title>
<
/Modal.Header>
<
Modal.Body>
Elit est explicabo ipsum eaque dolorem blanditiis doloribus sed id ipsam, beatae, rem fuga id earum? Inventore et facilis obcaecati.<
/Modal.Body>
<
Modal.Footer>
<
Button onClick={close}>
Close<
/Button>
<
/Modal.Footer>
<
/Modal>
<
/div>
);
}}
由于我们不想列出引导程序的所有组件, 而是最常用的组件, 因此你可以在官方的React Bootstrap网站上的文档中找到所有组件。
编码愉快!
推荐阅读
- 如何在Django中返回JSON响应
- 如何将Markdown渲染为纯React组件
- React Native –为什么它是移动应用程序开发的最佳选择()
- 如何使用CSS创建响应表
- 如何使用CSS将reCAPTCHA元素居中
- 如何高效优雅地管理接口文档
- 复杂多变场景下的Groovy脚本引擎实战
- 一步一步搭建Svn服务之TortoiseSVN基本操作
- InfluxDB数据接入MQTT