# 初识 React Slick

react-slick 是一个 React 组件库,用于创建响应式的轮播组件。它基于 Slick Carousel 库,提供了丰富的 API 和灵活的配置选项,让我们可以轻松地在 React 应用中实现各种滑动效果。 因为官方貌似没有出中文文档,所以就自行翻译了一版,如有问题欢迎指出~

# 快速上手

  1. 安装 React-Slick

    • npm 安装:npm install react-slick --save

    • yarn 安装:yarn add react-slick

  2. 安装轮播组件样式

    • npm install slick-carousel --save
  3. 引用样式文件

    重要:如果不引用 css 文件是没有动效的

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

# API

React-Slick 提供了许多配置项,以下是一些常用的配置参数:

  1. accessibility:启用标签和箭头键导航,默认为 true

  2. adaptiveHeight:是否根据内容高度自适应轮播的高度。

  3. afterChange:索引改变回调。默认为 (currentSlide: number) => {}

  4. appendDots:定制导航点,类似于 customPaging 。默认为 dots => <ul>{dots}</ul>

  5. arrows:是否显示箭头导航。默认为 true

  6. asNavFor:提供 ref 到另一个滑块并与当前滑块同步。

  7. autoplaySpeed:自动播放的速度,单位为毫秒,默认为 3000

  8. autoplay:是否自动播放,默认为 false

  9. beforeChange:索引改变回调。默认为 (currentSlide: number, nextSlide: number) => {}

  10. centerMode:中心显示当前幻灯片。默认为 false

  11. centerPadding:中心模式下的幻灯片间距。默认为 50px

  12. className:CSS 类名。

  13. customPaging:自定义分页模板。默认为 (index: number) => {index + 1}

  14. dotsClass:dots 的 CSS 类名。

  15. dots:是否显示底部导航点。

  16. draggable:启用可拖在桌面上滚动。默认为 true

  17. easing:动画缓动效果。

  18. fade:是否使用渐隐效果。

  19. focusOnSelect:点击响应幻灯片。

  20. infinite:是否无限循环播放,默认为 true

  21. initialSlide:初始显示的幻灯片索引。默认为 0

  22. lazyLoad:按需加载图片或组件。 "ondemand" | "progressive"

  23. onEdge:有限情况下的边缘拖拽事件。 (swipeDirection: SwipeDirection) => {}

  24. onInit:componentWillMount 回调。

  25. onLazyLoad:幻灯片懒加载后的回调。

  26. onReInit:componentDidUpdate 回调。

  27. onSwipe:滑动幻灯片后回调。 (swipeDirection: SwipeDirection) => {} pause

  28. OnDotsHover:鼠标悬停在点上时是否暂停自动播放。默认为 false

  29. pauseOnFocus:当幻灯片获得焦点时是否暂停自动播放。默认为 false

  30. pauseOnHover:鼠标悬停时是否暂停自动播放,默认为 true

  31. responsive:响应式配置,可以根据不同屏幕尺寸设置不同的参数。

  32. rows:滑块中每张幻灯片的行数,(启用网格模式)。默认为 1

  33. rtl:是否反转幻灯片顺序。默认为 false

  34. slide:幻灯片容器的类型。

  35. slidesPerRow:每行显示的幻灯片数量(启用网格模式)。

  36. slidesToScroll:每次滚动时切换的幻灯片数量,默认为 1

  37. slidesToShow:一次显示的幻灯片数量,默认为 1

  38. speed:切换速度,单位为毫秒,默认为 300

  39. swipeToSlide:允许用户直接拖动或滑动到任意幻灯片,无视 slidesToScroll 。

  40. swipe:是否启用滑动切换。默认为 true

  41. swipeEvent:滑动切换事件。 (swipeDirection: SwipeDirection) => {}

  42. touchMove:触摸滑动。默认为 true

  43. touchThreshold:触摸滑动的阈值。默认为 5

  44. useCSS:是否使用 CSS 过渡效果。

  45. useTransform:是否使用 CSS 变换。

  46. variableWidth:变量宽度。

  47. Examples vertical:是否启用垂直轮播模式。

  48. verticalSwiping:垂直滑动 waitForAnimate:等待动画。

方法

  1. slickGoTo:跳转到指定索引幻灯片,如果 dontAnimate=true,它会在没有动画的情况下发生。 (slideNumber: number, dontAnimate?: boolean) => {}
  2. slickNext:下一张幻灯片
  3. slickPause:暂停自动播放
  4. slickPlay:启动自动播放
  5. slickPrev:回到上一张幻灯片

# 总结

这是年前最后一篇文章,希望能给大家带来帮助,提前祝大家新年快乐~