- 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 - 使用 React Hooks 进行状态管理
- ReactJS - 使用 React Hooks 的组件生命周期
- ReactJS - 布局组件
- ReactJS - 分页
- ReactJS - Material UI
- ReactJS - Http 客户端编程
- ReactJS - 表单编程
- ReactJS - 受控组件
- ReactJS - 非受控组件
- ReactJS - Formik
- ReactJS - 条件渲染
- ReactJS - 列表
- ReactJS - Keys
- 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 - Context
- ReactJS - 错误边界
- ReactJS - 转发 Refs
- ReactJS - 片段
- ReactJS - 高阶组件
- ReactJS - 与其他库集成
- ReactJS - 性能优化
- ReactJS - Profiler API
- ReactJS - Portals
- ReactJS - 无 ES6 ECMAScript 的 React
- ReactJS - 无 JSX 的 React
- ReactJS - 调和
- ReactJS - Refs 和 DOM
- ReactJS - Render Props
- ReactJS - 静态类型检查
- ReactJS - Strict Mode
- ReactJS - Web Components
- 附加概念
- ReactJS - 日期选择器
- ReactJS - Helmet
- ReactJS - 内联样式
- ReactJS - PropTypes
- ReactJS - BrowserRouter
- ReactJS - DOM
- ReactJS - 轮播图
- ReactJS - 图标
- ReactJS - 表单组件
- ReactJS - 参考 API
- ReactJS 有用资源
- ReactJS - 快速指南
- ReactJS - 有用资源
- ReactJS - 讨论
ReactJS - 轮播图
React 通过第三方 UI 组件库提供轮播图组件。React 社区提供了大量的 UI/UX 组件,选择合适的库来满足我们的需求是比较困难的。Bootstrap UI 库是开发人员的热门选择之一,并且被广泛使用。React Bootstrap(https://react-bootstrap.github.io/)已将几乎所有 Bootstrap UI 组件移植到 React 库中,并且对轮播图组件也具有最佳的支持。
让我们在本节学习如何使用react-bootstrap库中的轮播图组件。
什么是轮播图?
轮播图基本上是一个幻灯片,它循环播放一系列内容,并具有丰富的动画支持。它接受一系列图像作为其主要内容。它还接受每个幻灯片的标题内容。它具有按钮/指示器,可以从当前内容导航到下一个/上一个内容。暂停和显示内容的时间长度可以根据需要进行配置。
Carousel 组件
Carousel 组件允许开发人员在 Web 应用程序中使用 Bootstrap 设计创建简单的轮播图。Carousel 组件接受两个组件:
Carousel.Item
Carousel 组件接受多个Carousel.Item项目。每个 Carousel.Items 都是一个幻灯片,可以接受一个图像。示例代码如下:
<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 组件接受少量 props 来配置功能,它们如下所示:
controls (布尔值)
启用/禁用控件,例如上一个/下一个按钮
keyboard (布尔值)
启用键盘控制
touch (布尔值)
启用/禁用触摸控制
indicators (布尔值)
启用/禁用轮播图底部的指示器
nextIcon (React 节点)
自定义下一个图标的选项
nextLabel (字符串)
自定义下一个标签的选项
prevIcon (React 节点)
自定义上一个图标的选项
prevLabel (字符串)
自定义上一个标签的选项
interval (数字)
两个幻灯片之间暂停和播放的时间长度
activeIndex (数字)
表示要显示的幻灯片的索引号
slide (布尔值)
启用/禁用自动幻灯片功能
variant (dark)
启用轮播图设计的不同变体。dark 选项将轮播图主题从浅色更改为深色
bsPrefix (字符串)
用于自定义底层 CSS 类的前缀
onSelect (函数)
启用附加函数以处理 onSelect 事件
onSlide (函数)
启用附加函数以处理 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 组件中使用了 fade props 来更改动画类型
在 Carousel 组件中使用了 indicators props 来移除指示器
在 Carousel 组件中使用了 controls props 来移除控件
添加了三个 Carousel.Item 项目并使用了三个图像。
在每个 Carousel.Item 组件中添加了 Carousel.Caption 并为每个幻灯片设置了标题。
接下来,打开App.css (src/App.css) 并移除所有样式。
// remove all default styles
接下来,打开 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 样式
最后,在浏览器中打开应用程序并检查最终结果。轮播图组件将如下所示:
添加控件和指示器
让我们更新我们的组件以包括控件来导航到下一个和上一个幻灯片,以及指示器来标识当前幻灯片的 位置。
首先,打开我们的轮播图应用程序并更新SimpleCarousel组件,如下所示:
import { Carousel } from 'react-bootstrap'; function SimpleCarousel() { return ( <Carousel fade indicators={true} controls={true}> <Carousel.Item> // ...
这里:
使用了indicators props 来启用指示器
使用了controls props 来启用控件
接下来,在浏览器中打开应用程序并检查最终结果。轮播图组件将带有控件和指示器如下所示:
总结
React-bootstrap Carousel 组件提供了创建简洁易用的轮播图组件所需的所有选项。