スワイパープラグインを使用して 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 ステートメント最適化テクニック

推薦する

Navicateを使用してAlibaba Cloud Server上のMySQLに接続する

1. まず、サーバーの mysql にアクセスして権限を変更します。 GRANT オプション付きで、...

MySQLクエリステートメント内のユーザー変数のコード分析

前回の記事では、MySQL 最適化の概要 - クエリの合計数を紹介しました。この記事では、クエリ ス...

iframe なしの div ネスト HTML

最近、宿題をしているときに、iframe を使用せずにページをネストする必要があったため、jquer...

vue.js パッケージ化プロジェクトの後の空白ページの解決策

Vueに触れたばかりのパートナーの多くは、開発環境ではVueプロジェクトは正常であるが、パッケージ化...

JavaScript クロージャの詳細

目次1. クロージャとは何ですか? 2. 閉鎖の役割序文: JavaScript部分ではクロージャが...

ウェブデザイナーは適した人材

<br />この世に道はない。より多くの人が歩くようになると、それは道になります。最初は...

docker compose の使い方の詳しい説明

目次Docker Compose の使用シナリオ基本的なデモ基本的な操作とメンテナンスdocker-...

hrefを使用すると、リンクをクリックするだけでページ上の特定の場所にジャンプできます。

ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...

MySql データベースにおける単一テーブル クエリと複数テーブル結合クエリの効率の比較

この間、プロジェクトに取り組んでいるときに、データ間の接続が非常に複雑なモジュールに遭遇しました。テ...

Vue で動的なスタイルを実現するためのさまざまな方法のまとめ

目次1. 三項演算子の判定2. 動的に設定されるクラス3. 方法判定4. 配列バインディング5. e...

フロントエンドJavaScriptは関数のカリー化を完全に理解している

目次1. カレーとは何か2. カレーの用途3. カリー化ユーティリティ関数をカプセル化する方法 1....

GZIP 圧縮 Tomcat と Web パフォーマンスの改善プロセス図

1. はじめに最近、あるプロジェクトに取り組んでいたのですが、サーバーからクライアントに返される J...

GolangでMySQLデータベースを操作するための実装コード

序文Golang は、SQL データベースにアクセスするための database/sql パッケージ...

MySQL 変数宣言とストアド プロシージャの分析

変数の宣言グローバル変数の設定@a='新しい変数' を設定します。関数やストアドプロ...

Vueはメニューナビゲーションを実装するためにelement-uiを使用します

この記事では、Element-uiを使用してメニューナビゲーションを実装するVueの具体的なコードを...