### Image slider / Carousels 在網站上很多時都會使用流水式的 Banner 來告訴使用者最近的事情。  ### 選擇現成的 Library 初時筆者找到了 `react-alice-carousel` 這個套件,好像很簡單易用,所以後快速的試了一下。不過發現有個問題到現時最新的 Version 都好像還沒有修正好,就是在圖片滑動的中途,如果整個 Component 出現 unmount 的情況,就會出現 Error : Updated on unmounted component。 雖然在它們的 github 上好像沒有人 report 過這樣的 issue。不過筆者確實是遇到了,所以還是選擇另家的好了。 ### nuka-carousel 這是另一家大神寫出來的 Image slider,使用上也是非常之簡單。 Github: https://github.com/FormidableLabs/nuka-carousel 下面會簡單記錄一下使用的方法。 ### 安裝 可以使用 npm 來安裝。 ```sh $ npm install nuka-carousel ``` ### 使用 使用上也是十分之簡單,只要用 Carousel 包住想要用來 Slide 的內容就可以了,高度是自動的,內容可以用 Array 填入就可以。配上 Div 使用 background 來使用就非常得心應手。 ```js import React from 'react'; import Carousel from 'nuka-carousel'; export default class extends React.Component { render() { return ( <Carousel> <img src="https://via.placeholder.com/400/ffffff/c0392b/&text=slide1" /> <img src="https://via.placeholder.com/400/ffffff/c0392b/&text=slide2" /> <img src="https://via.placeholder.com/400/ffffff/c0392b/&text=slide3" /> <img src="https://via.placeholder.com/400/ffffff/c0392b/&text=slide4" /> <img src="https://via.placeholder.com/400/ffffff/c0392b/&text=slide5" /> <img src="https://via.placeholder.com/400/ffffff/c0392b/&text=slide6" /> </Carousel> ); } } ``` 送上 div 顯示圖片的咒語: ```js <div style={{ background: '#FFFFFF url(https://via.placeholder.com/400/ffffff/c0392b/&text=slide1) center center / cover no-repeat', height: '0px', paddingBottom: '30%' }} /> ``` 以下是筆者使用的 Config: ```js <Carousel autoplay={ true } autoplayInterval={ 4000 } withoutControls={ false } wrapAround={ true } speed={ 1000 } renderCenterLeftControls={ () => {} } renderCenterRightControls={ () => {} } > {items} </Carousel> ```