当前位置:首页 > React

react如何写轮播图

2026-03-11 13:28:50React

使用 react-slick 实现轮播图

react-slick 是一个基于 slick-carousel 的 React 轮播组件,功能丰富且易于使用。

安装依赖:

npm install react-slick slick-carousel

基础实现代码:

import React from "react";
import Slider from "react-slick";
import "slick-carousel/slick/slick.css"; 
import "slick-carousel/slick/slick-theme.css";

function SimpleSlider() {
  const settings = {
    dots: true,
    infinite: true,
    speed: 500,
    slidesToShow: 1,
    slidesToScroll: 1
  };

  return (
    <Slider {...settings}>
      <div><h3>Slide 1</h3></div>
      <div><h3>Slide 2</h3></div>
      <div><h3>Slide 3</h3></div>
    </Slider>
  );
}

使用 Swiper.js 实现轮播图

Swiper 是另一个流行的轮播库,对移动端支持良好。

安装依赖:

npm install swiper

基础实现代码:

import React from 'react';
import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/css';

function App() {
  return (
    <Swiper
      spaceBetween={50}
      slidesPerView={1}
      onSlideChange={() => console.log('slide change')}
      onSwiper={(swiper) => console.log(swiper)}
    >
      <SwiperSlide>Slide 1</SwiperSlide>
      <SwiperSlide>Slide 2</SwiperSlide>
      <SwiperSlide>Slide 3</SwiperSlide>
    </Swiper>
  );
}

自定义实现简单轮播图

如果不依赖第三方库,可以通过 useState 和 useEffect 实现基础轮播功能。

import React, { useState, useEffect } from 'react';

function SimpleCarousel({ slides }) {
  const [currentIndex, setCurrentIndex] = useState(0);

  useEffect(() => {
    const timer = setTimeout(() => {
      setCurrentIndex((prevIndex) => 
        prevIndex === slides.length - 1 ? 0 : prevIndex + 1
      );
    }, 3000);
    return () => clearTimeout(timer);
  }, [currentIndex, slides.length]);

  return (
    <div style={{ position: 'relative', height: '400px', overflow: 'hidden' }}>
      {slides.map((slide, index) => (
        <div 
          key={index}
          style={{
            position: 'absolute',
            width: '100%',
            opacity: index === currentIndex ? 1 : 0,
            transition: 'opacity 1s ease-in-out'
          }}
        >
          {slide}
        </div>
      ))}
    </div>
  );
}

轮播图常见功能配置

自动播放配置(react-slick):

const settings = {
  autoplay: true,
  autoplaySpeed: 2000,
  pauseOnHover: true
};

响应式配置(react-slick):

const settings = {
  responsive: [
    {
      breakpoint: 1024,
      settings: {
        slidesToShow: 3
      }
    },
    {
      breakpoint: 600,
      settings: {
        slidesToShow: 2
      }
    }
  ]
};

导航按钮(Swiper):

react如何写轮播图

<Swiper
  navigation
  pagination={{ clickable: true }}
>
  {/* slides */}
</Swiper>

标签: 如何写react
分享给朋友:

相关文章

react中monent如何获取日期

react中monent如何获取日期

使用 Moment.js 获取当前日期 在 React 中通过 Moment.js 获取当前日期,可以直接调用 moment() 函数。它会返回包含当前日期和时间的 Moment 对象。 impor…

react如何收录

react如何收录

React 收录方法 React 的收录主要涉及搜索引擎优化(SEO)和预渲染技术。由于 React 是单页应用(SPA),默认情况下内容由 JavaScript 动态生成,可能导致搜索引擎爬虫难以收…

react 如何运行

react 如何运行

运行 React 项目的步骤 安装 Node.js 确保系统已安装 Node.js(建议版本 16+),可通过官网下载并安装。安装后验证版本: node -v npm -v 创建 React 项目…

react如何循环

react如何循环

循环渲染列表 在React中循环渲染列表通常使用map方法,这是最常用的方式。通过map可以将数组中的每个元素转换为React元素并渲染到页面上。 const items = ['Apple', '…

react native如何

react native如何

React Native 基础知识 React Native 是一个由 Facebook 开发的框架,用于使用 JavaScript 和 React 构建跨平台移动应用。它允许开发者编写一次代码,同时…

react如何上传文件

react如何上传文件

使用React上传文件的方法 使用HTML的input元素和FormData 创建一个文件输入字段,通过onChange事件获取文件对象,使用FormData将文件数据发送到服务器。 import…