Criando um Slider de Imagens Dinâmico com React

Css 22 de Jan de 2024

Introdução

Hoje, vamos aprender como criar um Slider de Imagens simples, mas elegante, usando React. Essa é uma habilidade essencial para qualquer desenvolvedor front-end, já que sliders são comumente usados em websites para destacar conteúdos importantes de forma interativa.

Passo 1: Estrutura Básica do Projeto

Primeiro, crie um novo projeto React com create-react-app e crie um novo componente chamado ImageSlider.

npx create-react-app meu-slider
cd meu-slider

Passo 2: Componente ImageSlider

Agora, vamos criar o componente ImageSlider. Este componente aceitará um array de URLs de imagens como propriedades e as exibirá em um slider.

import React, { useState } from 'react';

const ImageSlider = ({ images }) => {
  const [current, setCurrent] = useState(0);
  const length = images.length;

  const nextSlide = () => {
    setCurrent(current === length - 1 ? 0 : current + 1);
  };

  const prevSlide = () => {
    setCurrent(current === 0 ? length - 1 : current - 1);
  };

  if (!Array.isArray(images) || images.length <= 0) {
    return null;
  }

  return (
    <section className='slider'>
      {images.map((image, index) => (
        <div key={index} className={index === current ? 'slide active' : 'slide'}>
          {index === current && (
            <img src={image} alt='travel image' className='image' />
          )}
        </div>
      ))}
      <button className='left-arrow' onClick={prevSlide}>Prev</button>
      <button className='right-arrow' onClick={nextSlide}>Next</button>
    </section>
  );
};

export default ImageSlider;

Passo 3: Adicionando Estilos

Vamos adicionar um pouco de CSS para tornar nosso slider visualmente atraente.

.slider {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
}

.slide {
  opacity: 0;
  transition-duration: 1s ease;
}

.slide.active {
  opacity: 1;
  transition-duration: 1s;
  transform: scale(1.08);
}

.image {
  width: 500px;
  height: 300px;
  border-radius: 10px;
}

.left-arrow, .right-arrow {
  cursor: pointer;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: #fff;
  border: none;
  padding: 10px;
  border-radius: 50%;
  user-select: none;
}

.left-arrow {
  left: 25px;
}

.right-arrow {
  right: 25px;
}

Conclusão

E assim, criamos um belo Slider de Imagens em React! Este é um componente versátil que pode ser facilmente integrado e personalizado em qualquer projeto React.

Josias Pereira

Programador full-stack sênior e apaixonado por ensinar. No tempo livre adora compartilhar conhecimentos e experiências das tecnologias de desenvolvimento back-end e front-end que mais gosta.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.