Aprenda a Criar Listas Arrastáveis no React Usando SortableJS

Tutorial sobre como implementar listas arrastáveis no React utilizando a biblioteca SortableJS.

Implementando Listas Arrastáveis no React com SortableJS

Ao desenvolver aplicações React, é comum precisar de listas que permitam reorganização através de arraste e soltar. O SortableJS é uma biblioteca poderosa que facilita essa implementação. Neste tutorial, vamos explorar como configurar e usar o SortableJS em uma aplicação React.

O que é SortableJS?

SortableJS é uma biblioteca leve e de alto desempenho que permite arrastar e soltar elementos em listas. É altamente configurável e pode ser integrada em diferentes frameworks, incluindo React. Essa biblioteca é ideal para criar interfaces de usuário mais dinâmicas e interativas.

Instalando o SortableJS

Para começar, precisamos instalar a biblioteca SortableJS. Você pode fazer isso usando npm ou yarn:

npm install sortablejs

ou

yarn add sortablejs

Integrando SortableJS no React

Após a instalação, o próximo passo é integrar o SortableJS em um componente React. Vamos criar um componente simples que exibe uma lista de itens que podem ser rearranjados.

import React, { useEffect, useRef } from 'react';
import Sortable from 'sortablejs';

const SortableList = () => {
    const listRef = useRef(null);
    const items = ['Item 1', 'Item 2', 'Item 3', 'Item 4'];

    useEffect(() => {
        Sortable.create(listRef.current);
    }, []);

    return (
        <ul ref={listRef}>
            {items.map(item => (
                <li key={item}>{item}</li>
            ))}
        </ul>
    );
};

export default SortableList;

Neste código, estamos criando um componente SortableList que renderiza uma lista de itens. Usamos o hook useRef para referenciar o elemento DOM que contém a lista e o useEffect para inicializar o SortableJS uma vez que o componente for montado.

Explicação do Código

O código acima define um componente funcional que utiliza o hook useEffect para inicializar o SortableJS assim que o componente é renderizado. A lista de itens é criada a partir de um array e renderizada como uma lista não ordenada (<ul>). Cada item da lista é representado por um elemento <li>. O SortableJS se encarregará de tornar esses itens arrastáveis.

Customizando o Comportamento do Drag-and-Drop

Uma das grandes vantagens do SortableJS é sua capacidade de customização. Você pode adicionar opções para controlar o comportamento do arraste. Por exemplo, você pode especificar que apenas certos elementos podem ser arrastados ou definir um limite de arraste.

Sortable.create(listRef.current, {
Animation: 150,
    ghostClass: 'ghost',
    filter: '.ignore',
});

Explicação das Opções

  • animation: Define a duração da animação ao arrastar os itens, em milissegundos.
  • ghostClass: Classe CSS que será aplicada ao elemento que está sendo arrastado.
  • filter: Permite especificar elementos que não podem ser arrastados, utilizando uma classe.

Conclusão

Implementar listas arrastáveis em uma aplicação React usando o SortableJS é uma tarefa simples e direta. Com apenas algumas linhas de código, você pode oferecer uma experiência de usuário rica e interativa. Explore as opções de configuração para personalizar o comportamento do arraste conforme suas necessidades e crie interfaces mais dinâmicas!

Considerações Finais

O uso de bibliotecas como o SortableJS pode transformar a maneira como os usuários interagem com suas aplicações. Ao proporcionar funcionalidades intuitivas como o arraste e o soltar, você pode aumentar a usabilidade e a satisfação do usuário. Experimente integrar essa funcionalidade em seus próximos projetos e veja a diferença que faz na experiência do usuário.

Listas arrastáveis são uma das funcionalidades mais procuradas em interfaces de usuário modernas. Elas oferecem uma forma intuitiva para o usuário reorganizar elementos, o que é especialmente útil em aplicações que lidam com tarefas, categorizações e muito mais. O SortableJS é uma escolha popular para implementar essa funcionalidade em projetos React, devido à sua leveza e flexibilidade. Neste texto, vamos explorar como essa biblioteca pode ser aplicada em diferentes contextos, proporcionando uma experiência de usuário mais interativa e fluida.

Algumas aplicações:

  • Organização de tarefas em aplicativos de produtividade.
  • Customização de layouts em construtores de páginas.
  • Reorganização de itens em e-commerces.

Dicas para quem está começando

  • Comece com exemplos simples e vá incrementando a complexidade.
  • Experimente diferentes opções de configuração do SortableJS.
  • Teste a funcionalidade em dispositivos móveis para garantir a responsividade.

Contribuições de Gabriel Nogueira

Compartilhe este tutorial: Como criar listas arrastáveis (drag-and-drop) no React com SortableJS?

Compartilhe este tutorial

Continue aprendendo:

Como utilizar React Final Form para manipular formulários complexos no React?

Tutorial completo sobre como utilizar React Final Form para gerenciar formulários complexos.

Tutorial anterior

Como criar modais acessíveis no React usando Reach UI?

Um tutorial abrangente sobre a criação de modais acessíveis utilizando a biblioteca Reach UI no React.

Próximo tutorial