概要
実装をする中で実装可能だけど、そこに時間あんまり費やしたくないなぁって時結構ありますよね。
画像のスライダー機能の実装でそのような状況になりました。
自作実装もできるけど。。アニメーションを場面ごと切り替えたりするのが結構手間><
そこで、よく使われているライブラリを探していたところSwiper
を見つけて実装がとても楽だったので共有したいと思います。
実装例
スライダーで使うcssをimportする
import "swiper/swiper.scss";
import 'swiper/components/pagination/pagination.scss';
スライダー用のコンポーネントを実装する
import * as React from 'react';
import SwiperCore, { Pagination, Autoplay } from "swiper";
import { Swiper, SwiperSlide } from "swiper/react";
SwiperCore.use([Pagination, Autoplay]);
interface Props {
imageData: Array<string>;
// trueで自動でスライダーアニメーションが動く
isAuto: boolean;
// trueでpaginationクリックでスライダーアニメーションが動く
clickable: boolean
}
const SwiperComponent: React.FC<Props> = (props) => {
return (
<div>
<Swiper pagination={{ clickable: props.clickable }} autoplay={props.isAuto}>
{props.imageData.map((imageSrc, i) => {
return (
<SwiperSlide key={`${imageSrc}${i}`}>
<img key={`${imageSrc}`} src={imageSrc} />
</SwiperSlide>
);
})}
</Swiper>
</div>
);
};
export default SwiperComponent;
これだけ!!
あとはスライダー用のコンポーネントをスライダー実装したい箇所に組み込んであげるだけ!
<SwiperComponent imageData={["image/image1.jpg", "image/image2.jpg"]} isAuto={true} clickable={false} />
これで画像スライダーの完成!
とても簡単。
他にも便利な機能が山ほどあります。
スライドアニメーションもたくさんありますので色々と試してみるといいかもです。
まとめ
今回は一番シンプルなスライダーをSwiper
を使って簡単な実装例と共に紹介しました。
ちょっと実装に時間かかりそうなところがめちゃくちゃシンプルに実装できましたね。
Vueにも対応しているみたい
※注意点
ライブラリは便利な反面、何気なく使ってしまうと危険な時があります。
急に開発元が開発をやめたり、特定のバージョンや環境でしか動かなこともザラにあります。
ライブラリを使うときはドキュメントをしっかり読み、ライセンスの確認、使っているユーザーの数(githubスターの数)
さらには開発状況などを確認した上で慎重に使うことをお勧めします。
個人で試す、勉強で使う場合は問題ないと思いますが、
仕事として今後世に出ていくようなサービスで使う場合はその辺りは意識してライブラリは使っていくといいと思います。