スワイパープラグインを使用して Vue でカルーセルを実装する例

スワイパープラグインを使用して Vue でカルーセルを実装する例

みなさんこんにちは。私は現在、Ele.me を模倣したプロジェクトに取り組んでいます。ここで私のプロジェクト体験を同期して、皆さんと共有したいと思います。

vue - スワイパープラグインを使用してカルーセルを実装する

ダウンロードしてインストール: npm install swiper --save

Msite.vue の HTML 部分:

<!-- ページの msite_nav ナビゲーション セクションで swiper を使用します -->
<div class="スワイパーコンテナ">
	<div class="スワイパーラッパー">
        <div class="swiper-slide">1</div>
        <div class="swiper-slide">2</div>
        <div class="swiper-slide">3</div>
    </div>
    <!-- スワイパー カルーセル ドット -->
    <div class="swiper-pagination"></div>
</div>

スクリプト部分が導入され、初期化されます。

<スクリプト>
'swiper' から Swiper をインポートします
//同時に、swiperのcssファイルをインポートします import 'swiper/dist/css/swiper.min.css'
エクスポートデフォルト{
  //スワイパーはページがロード(マウント)された後に初期化する必要があることに注意してください。mounted(){
    //カルーセルを実装するためのスワイパーインスタンスを作成する new Swiper('.swiper-container', {
      自動再生: 有効、
      // ページネーションが必要な場合: {
        el: '.swiper-pagination',
        クリック可能: true
      }
   })
  }
}
</スクリプト>

CSSファイルをインポートする場合、バージョンが異なるためインポート方法が異なることに注意してください。そうでない場合は、対応するCSSファイルが見つからないためエラーが報告されます。たとえば、最新バージョン

'swiper/swiper-bundle.min.css' をインポートします

具体的な使い方については[Swiper公式ドキュメント]を参照してください。

注意すべき点は、データをリクエストした後にスワイパーインスタンスを作成する必要があることです。

カルーセルのバグを解決するには、watch と $nextTick を使用します。

ページング スワイパーは、実際にはカルーセル リストが表示された後に初期化される必要があります (つまり、カテゴリ配列にデータがある)。

最初は、categories は空の配列です。カルーセル リストはデータがある場合にのみ表示されます。カテゴリのデータの変更を監視するには、watch を使用します。

//カテゴリを監視するための新しいウォッチを作成する
時計:
    カテゴリ (値) { // カテゴリ配列にデータがあります // ただし、インターフェースはまだ非同期に更新されていません}
}
// マウントされた新しいSwiper...コードを削除します

しかし実際には、状態内の状態データの変更(データを受信するカテゴリ)と、インターフェイスの非同期更新(カルーセル リストの表示)は 2 つのステップです。したがって、Swiper を初期化する前に、インターフェースが非同期更新を完了するまでしばらく待つ必要があります。

// setTimeout を使用すると効果は得られますが、タイミングは正確ではありません setTimeout(() => {
	// カルーセルを実装するためのSwiperインスタンスオブジェクトを作成します。new Swiper('.swiper-container', {
          自動再生: 有効、
          // ページネーションが必要な場合: {
            el: '.swiper-pagination',
            クリック可能: true
          }
	})
}, 100)

vm.$nextTick( [callback] ) を使用して、インターフェースが非同期更新を完了するのを待った直後に Swiper オブジェクトを作成します。

// データの変更後すぐに使用し、DOM が更新されるまで待機します。
this.$nextTick(() => {
	// インターフェースの更新が完了したら、すぐにコールバックを実行します。new Swiper('.swiper-container', {
    	自動再生: 有効、
    	ページネーション:
    	el: '.swiper-pagination',
    	クリック可能: true
    }
})

上記は、Vue が swiper プラグインを使用してカルーセルを実装する方法の例の詳細です。Vue が swiper プラグインを使用してカルーセルを実装する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue プロジェクトでのスワイパー ループ カルーセルの失敗の解決策
  • VueはSwiperをカプセル化して画像カルーセル効果を実現します
  • Vue2.0はスワイパーコンポーネントを使用してカルーセル効果を実現します
  • Vue でスワイパー フレームワーク カルーセルの小さなドットのスタイルを変更しても機能しない

<<:  Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

>>:  MYSQL クエリの効率を向上させる 10 の SQL ステートメント最適化テクニック

推薦する

フレックスレイアウトでコンテナ内のコンテンツを維持するためのソリューションの詳細な説明

モバイル側では、フレックスレイアウトが非常に便利です。デバイスの幅に応じてコンテナの幅を自動的に調整...

ウェブページでコンテンツを引用するためによく使われるHTMLタグをマスターする

長い引用には blockquote を、短い引用には q を、参考文献には cite を使用します。...

Ubuntu 20.04 に cuda10.1 をインストールする手順 (グラフィック チュートリアル)

インストール前の準備CUDA の主な目的はディープラーニングであり、現在主流のディープラーニングフレ...

CentOS VPS に SSH 経由で MySQL をインストールする方法

yum install mysql-serverと入力します。続行するにはYを押してくださいインスト...

Linuxコマンド履歴の調整方法の詳細な説明

Linux システムの bash history コマンドは、以前に実行したコマンドを記憶し、再入力...

スケーラブルな列の完全な例を実現するための Ant 設計 Vue テーブル

ant-design-vue テーブルのスケーラブルな列の問題に対する完璧なソリューション。固定列と...

Linux で Scala 環境を構築し、簡単な Scala プログラムを書く

Linux に Scala 環境をインストールするのは非常に簡単です。Ubuntu 環境であれば、さ...

TypeScript 名前空間のマージの説明

目次同じ名前の名前空間をマージする名前空間とその他の種類のマージ同じ名前の名前空間とクラスをマージす...

Vue命令の動作原理と実装方法

Vue の紹介現在のビッグフロントエンドの時代は、混乱と衝突の時代です。世界は多くの派閥に分かれてお...

ウィンドウとLinuxプロジェクトを展開する際のLinuxファイルパスに問題はありません

長い間ブログを書いていませんでした。先週、プロジェクトをテストしたところ、いくつかのバグが見つかりま...

複数のパッケージソースから同時にパッケージをロードするようにnpmを設定する方法

目次1. ローカルストレージを構築する2. npmパッケージを作成し、プライベートリポジトリにアップ...

トランザクション分離レベルのMySQLケース分析

目次1. 理論シリアル化可能繰り返し読み取りコミットされた読み取りコミットされていない読み取り2. ...

JavaScript コンストラクタとプロトタイプの関係

目次1. コンストラクタとプロトタイプ1. コンストラクター2. コンストラクタ問題3. コンストラ...

Reactはページの透かし効果の全プロセスを実現します

目次序文1. 使用例2. 実施プロセス3. コンポーネントコード要約する序文1. cavans では...