ReactJS 教程

ReactJS - 主页 ReactJS - 简介 ReactJS - 路线图 ReactJS - 安装 ReactJS - 功能 ReactJS - 优势和缺点 ReactJS - 架构 ReactJS - 创建 React 应用程序 ReactJS - JSX ReactJS - 组件 ReactJS - 嵌套组件 ReactJS - 使用组件 ReactJS - 集合组件 ReactJS - 样式 ReactJS - 属性 (props) ReactJS - 使用属性创建组件 ReactJS - props 验证 ReactJS - 构造函数 ReactJS - 组件生命周期 ReactJS - 事件管理 ReactJS - 创建事件感知组件 ReactJS - Expense Manager 事件 ReactJS - 状态管理 ReactJS - 状态管理 API ReactJS - 无状态组件 ReactJS - Hooks 进行状态管理 ReactJS - Hooks 的组件生命周期 ReactJS - 布局组件 ReactJS - 分页 ReactJS - Material UI ReactJS - Http 客户端编程 ReactJS - 表单编程 ReactJS - 受控组件 ReactJS - 非受控组件 ReactJS - Formik ReactJS - 条件渲染 ReactJS - 列表 ReactJS - Key 键 ReactJS - 路由 ReactJS - Redux ReactJS - 动画 ReactJS - Bootstrap ReactJS - Map ReactJS - 表格 ReactJS - 使用 Flux 管理状态 ReactJS - 测试 ReactJS - CLI 命令 ReactJS - 构建和部署 ReactJS - 示例

Hooks

ReactJS - Hooks 简介 ReactJS - 使用 useState ReactJS - 使用 useEffect ReactJS - 使用 useContext ReactJS - 使用 useRef ReactJS - 使用 useReducer ReactJS - 使用 useCallback ReactJS - 使用 useMemo ReactJS - 自定义 Hooks

ReactJS 高级

ReactJS - 可访问性 ReactJS - 代码拆分 ReactJS - 上下文 ReactJS - 错误边界 ReactJS - 转发 Refs ReactJS - 片段 ReactJS - 高阶组件 ReactJS - 与其他库集成 ReactJS - 优化性能 ReactJS - Profiler API ReactJS - Portals ReactJS - 不使用 ES6 ECMAScript ReactJS - 不使用 JSX 的 React ReactJS - Reconciliation ReactJS - Refs 和 DOM ReactJS - 渲染道具 ReactJS - 静态类型检查 ReactJS - 严格模式 ReactJS - Web 组件

其他概念

ReactJS - 日期选择器 ReactJS - Helmet ReactJS - 内联样式 ReactJS - PropTypes ReactJS - BrowserRouter ReactJS - DOM ReactJS - 轮播 ReactJS - 图标 ReactJS - 表单组件 ReactJS - 参考 API

ReactJS 有用资源

ReactJS - 快速指南 ReactJS - 备忘录 Axios - 备忘录 ReactJS - 有用资源 ReactJS - 讨论


ReactJS - 轮播

React 通过第三方 UI 组件库提供轮播组件。React 社区提供了大量的 UI / UX 组件,很难选择适合我们需求的库。Bootstrap UI 库是开发人员的热门选择之一,被广泛使用。 React Bootstrap (https://react-bootstrap.github.io/) 已将几乎所有 bootstrap UI 组件移植到 React 库,并且它对 Carousel 组件也提供了最佳支持。

在本章中,我们将学习如何使用 react-bootstrap 库中的 Carousel 组件。

什么是 Carousel?

Carousel 基本上是一个幻灯片,循环播放一系列内容,并支持丰富的动画。它接受一系列图像作为其主要内容。它还接受每张幻灯片的标题内容。它有按钮/指示器,用于从当前内容导航到下一个/上一个内容。可以根据需求配置暂停和显示内容的时间长度。

Carousel 轮播组件

Carousel 轮播组件允许开发人员在 Web 应用程序中使用引导设计创建简单的轮播。轮播组件接受两个组件,

  • Carousel.Item

轮播组件接受多个Carousel.Item项。每个Carousel.Item 都是一张幻灯片,可以接受一张图片。示例代码如下 −

<Carousel>
   <Carousel.Item>
      <img
         className="d-block w-100"
         src="react_bootstrap_carousel_slide1.png"
         alt="First slide"
      />
   </Carousel.Item>
   <Carousel.Item>
      <img
         className="d-block w-100"
         src="react_bootstrap_carousel_slide2.png"
         alt="Second slide"
      />
   </Carousel.Item>
</Carousel>
  • Carousel.Caption

Carousel.Caption 是一个特殊组件,用于显示幻灯片的简短描述,应包含在 Carousel.Item 组件内。示例代码如下 −

<Carousel.Item>
   <img
      className="d-block w-100"
      src="react_bootstrap_carousel_slide1.png"
      alt="First slide"
   />
   <Carousel.Caption>
      <h3>React Bootstrap</h3>
      <p>React component library providing bootstrap components</p>
   </Carousel.Caption>
</Carousel.Item>

Carousel 组件接受一小组属性来配置功能,具体如下,

  • controls (boolean)

  • 启用/禁用控件,例如上一个/下一个按钮

  • keyboard (boolean)

  • 启用键盘控制

  • touch (boolean)

  • 启用/禁用触摸控制

  • indicators (boolean)

  • 启用/禁用轮播底部的指示器

  • nextIcon (React node)

  • 自定义下一个图标的选项

  • nextLabel (string)

  • 自定义下一个标签的选项

  • prevIcon (React Node)

  • 自定义上一个图标的选项

  • prevLabel (string)

  • 自定义上一个标签的选项

  • interval (number)

  • 两张幻灯片之间暂停和播放的时长

  • activeIndex (number)

  • 表示要显示的幻灯片的索引号

  • slide (boolean)

  • 启用/禁用自动滑动功能

  • variant (dark)

  • 启用轮播设计的不同变体。深色选项将轮播主题从亮变为暗

  • bsPrefix (string)

  • 用于自定义底层 CSS 类的前缀

  • onSelect (function)

  • 可以附加一个函数来处理 onSelect 事件

  • onSlide (function)

  • 可以附加一个函数来处理 onSlide 事件

Carousel.Item 组件接受一些 props 来配置功能,如下所示:

  • interval(数字)

  • 单个幻灯片的暂停时间

  • bsPrefix(字符串)

  • 用于自定义底层 CSS 类的前缀

应用 Carousel 组件

首先,创建一个新的 React 应用程序并使用以下命令启动它。

create-react-app myapp
cd myapp
npm start

接下来,使用以下命令安装 bootstrap 和 react-bootstrap 库:

npm install --save bootstrap react-bootstrap

接下来,创建一个简单的轮播组件 SimpleCarousel (src/Components/SimpleCarousel.js) 并渲染一个轮播,如下所示 −

import { Carousel } from 'react-bootstrap';
function SimpleCarousel() {
   return (
      <Carousel fade indicators={false} controls={false}>
         <Carousel.Item>
            <img
               className="d-block w-100"
               src="react_bootstrap_carousel_slide1.png"
               alt="First slide"
            />
            <Carousel.Caption>
               <h3>React Bootstrap</h3>
               <p>React component library providing bootstrap components</p>
            </Carousel.Caption>
         </Carousel.Item>
         <Carousel.Item>
            <img
               className="d-block w-100"
               src="react_bootstrap_carousel_slide2.png"
               alt="Second slide"
            />
            <Carousel.Caption>
               <h3>Button</h3>
               <p>React Bootstrap button component</p>
            </Carousel.Caption>
         </Carousel.Item>
         <Carousel.Item>
            <img
               className="d-block w-100"
               src="react_bootstrap_carousel_slide3.png"
               alt="Third slide"
            />
            <Carousel.Caption>
               <h3>Carousel</h3>
               <p>React bootstrap Carousel component</p>
            </Carousel.Caption>
         </Carousel.Item>
      </Carousel>
   );
}
export default SimpleCarousel;

这里,

  • 导入 Carousel 组件并添加单个 Carousel 组件。

  • 在 Carousel 组件中使用淡入淡出属性来更改动画类型

  • 在 Carousel 组件中使用指示器属性来删除指示器

  • 在 Carousel 组件中使用控件属性来删除控件

  • 添加了三个 Carousel.Item 项目并使用了三张图片。

  • 在每个 Carousel.Item 组件中添加 Carousel.Caption 并设置每张幻灯片的标题。

接下来,打开 App.css (src/App.css) 并删除所有样式。

// 删除所有默认样式

接下来,打开 App 组件 (src/App.js),导入 bootstrap css 并使用我们新的轮播组件更新内容,如下所示 −

import './App.css'
import "bootstrap/dist/css/bootstrap.min.css";
import SimpleCarousel from './Components/SimpleCarousel'
function App() {
   return (
      <div className="container">
         <div style={{ padding: "10px" }}>
            <div style={{ width: "400px", height: "400px", backgroundColor: "skyblue" }}>
               <SimpleCarousel />
            </div>
         </div>
      </div>
   );
}
export default App;

这里,

  • 使用 import 语句导入 bootstrap 类

  • 渲染我们新的 SimpleCarousel 组件。

  • 包含 App.css 样式

最后,在浏览器中打开应用程序并检查最终结果。轮播组件将呈现如下图所示 −

Carousel

添加控件和指示器

让我们更新我们的组件以包含用于导航下一张和上一张幻灯片的控件以及用于识别当前幻灯片位置的指示器。

首先,打开我们的轮播应用程序并更新 SimpleCarousel 组件,如下所示−

import { Carousel } from 'react-bootstrap';
function SimpleCarousel() {
   return (
      <Carousel fade indicators={true} controls={true}>
      <Carousel.Item>
      // ...

这里,

  • 使用 indicators 属性来启用指示器

  • 使用 controls 属性来启用控件

接下来,在浏览器中打开应用程序并检查最终结果。轮播组件将使用控件和指示器呈现,如下所示 −

Carousel

摘要

React-bootstrap 轮播组件提供了创建干净、简单的轮播组件所需的所有选项。