Skip to content

Slick library

Yasser Al Sleiman edited this page Jun 8, 2023 · 2 revisions
  1. De Slick-bibliotheek:

Het gebruik van de Slick-bibliotheek in ReactJS is een populaire keuze om een slider te maken voor het weergeven van carrousels, diavoorstellingen en andere geanimeerde inhoud. Hier zijn enkele punten om over te praten bij het gebruik van de Slick-bibliotheek in ReactJS:

Installatie en configuratie: Om Slick in een ReactJS-project te gebruiken, moet je de bibliotheek installeren via npm of Yarn. Vervolgens kun je de Slick-component importeren in je project en de gewenste configuratie-opties doorgeven, zoals de weergave van meerdere slides, autoplay, navigatieknoppen en animaties.

React-componenten: Met Slick kun je eenvoudig React-componenten gebruiken als inhoud voor elke slide. Dit betekent dat je je eigen aangepaste componenten kunt maken en deze kunt invoegen in de Slick-slider. Hierdoor heb je volledige controle over de inhoud en functionaliteit van elke slide.

Responsiviteit: Slick biedt ingebouwde ondersteuning voor responsieve sliders, wat betekent dat je de weergave kunt aanpassen op basis van het schermformaat of apparaat. Je kunt breakpoints definiëren en specifieke configuratie-opties toepassen voor verschillende schermgroottes, zodat de slider er goed uitziet op zowel desktop als mobiele apparaten.

Aanpasbaarheid: Slick biedt verschillende configuratie-opties om de slider aan te passen aan je specifieke ontwerpbehoeften. Je kunt de animaties, overgangseffecten, snelheid, paginering, navigatieknoppen en andere visuele elementen aanpassen. Bovendien kun je via CSS de stijl van de slider en de individuele slides volledig aanpassen.

Gebeurtenissen en methoden: Slick biedt ook een reeks gebeurtenissen en methoden waarmee je de slider dynamisch kunt beheren. Je kunt bijvoorbeeld reageren op gebeurtenissen zoals het wijzigen van een slide, het starten van autoplay of het voltooien

Slick slider componente

import Slider from "react-slick";
import "slick-carousel/slick/slick.css";
import "slick-carousel/slick/slick-theme.css";
import "../../HomeStyles/custom/SlickSlider.css";

interface DataType {
  id?: number;
  componentName?: string;
  slickTrack?: {
    title: string;
    label: string;
    link: string;
    img: string;
  }[];
}
const dataItem: DataType = dataHome[2];
export default function SlickSlider() {
  const settings = {
    dots: true,
    infinite: false,
    // centerMode: true,
    variableWidth: true,
    speed: 700,
  };

  const responsiveSettings = [
    {
      breakpoint: 2900,
      settings: {
        slidesToShow: 7,
        slidesToScroll: 1,
      },
    },
    {
      breakpoint: 2300,
      settings: {
        slidesToShow: 6,
        slidesToScroll: 4,
      },
    },
    {
      breakpoint: 1920,
      settings: {
        slidesToShow: 6,
        slidesToScroll: 4,
      },
    },
    {
      breakpoint: 1600,
      settings: {
        slidesToShow: 5,
        slidesToScroll: 5,
      },
    },
    {
      breakpoint: 1280,
      settings: {
        slidesToShow: 4,
        slidesToScroll: 5,
      },
    },
    {
      breakpoint: 1024,
      settings: {
        slidesToShow: 3,
        slidesToScroll: 3,
      },
    },
    {
      breakpoint: 900,
      settings: {
        slidesToShow: 2,
        slidesToScroll: 2,
      },
    },
    {
      breakpoint: 720,
      settings: {
        slidesToShow: 1,
        slidesToScroll: 1,
      },
    },
  ];
  return (
    <section className={styles.SlickContainar} key={dataItem.id}>
      <p>{dataItem.componentName}</p>
      <Slider
        {...settings}
        // className={styles.Slick_carouselSlide}
        className={styles.Slick_carouselSlide + " slick-carouselSlide"}
        responsive={responsiveSettings}
      >
        {dataItem.slickTrack?.map((item) => (
          <section key={item.label}>
            <a className={styles.Slick_links} href={item.link}>
              <img src={item.img} alt="slick slider" />
              <li className={styles.Slick_content}>
                <span>
                  <h3 className={styles.h3Styles}>{item.title}</h3>
                  <img
                    className={styles.Slick_icon}
                    src={arrow_rightHome}
                    alt="icone"
                  />
                </span>
                <p>{item?.label}</p>
              </li>
            </a>
          </section>
        ))}
      </Slider>
    </section>
  );
}
  • De code uitleggen:

Dit codefragment is een React-component die de react-slick-bibliotheek gebruikt om een schuifbalk/carrousel te maken. Hier is een beschrijving van de code:

De eerste regels importeren de benodigde afhankelijkheden en stijlen voor de schuifbalkcomponent. Slider wordt geïmporteerd vanuit het react-slick-pakket, en CSS-bestanden voor de schuifbalk en het thema worden ook geïmporteerd.

De DataType-interface definieert de structuur van de gegevens die worden gebruikt om de schuifbalk in te vullen. Het bevat een optionele id en componentName, evenals een array genaamd slickTrack die objecten bevat met eigenschappen zoals title, label, link en img.

De variabele dataItem krijgt de waarde van dataHome[2], wat waarschijnlijk een specifiek item uit de dataHome-array vertegenwoordigt.

De SlickSlider-component wordt gedefinieerd als een functionele component. Binnen de component is er een settings-object dat het gedrag van de schuifbalk configureert, zoals het inschakelen van puntjes voor navigatie, het instellen van oneindig scrollen op false en het definiëren van de animatiesnelheid.

Het responsiveSettings-array bevat breakpoints en de bijbehorende instellingen voor verschillende schermgroottes. Elk object in de array specificeert het aantal weer te geven en te scrollen slides bij elke breakpoint.

De component rendert vervolgens een sectie-element met een class-naam styles.SlickContainar, gevolgd door een paragraaf-element dat dataItem.componentName weergeeft.

De Slider-component van react-slick wordt gebruikt om de daadwerkelijke schuifbalk te renderen. Het wordt voorzien van het settings-object, een className voor stijldoeleinden en het responsiveSettings-array om verschillende breakpoints te hanteren.

Binnen de Slider-component is er een mapping van dataItem.slickTrack om individuele dia's weer te geven. Elke dia vertegenwoordigt een sectie met een anker-tag (a) met een link, een afbeelding en een lijst-item (li) met titel- en labelinhoud.

Ten slotte retourneert de SlickSlider-component de weergegeven sectie met de schuifbalkcomponent en de inhoud ervan.

Over het algemeen maakt deze component een responsieve schuifbalk/carrousel met behulp van react-slick, vult deze met gegevens uit dataItem.slickTrack en past verschillende instellingen en breakpoints toe voor verschillende schermgroottes.