Webプロジェクトでは、データを読み込むためにプルダウンやスクロールの機能を使用することがよくあります。今日は、Vue-infinite-loadingプラグインの紹介と使い方を説明します! ステップ1: インストールnpm インストール vue-infinite-loading --save ステップ2: 引用'vue-infinite-loading' から InfiniteLoading をインポートします。 エクスポートデフォルト{ コンポーネント: { InfiniteLoading } } ステップ3: 使用1. 基本的な使い方 <テンプレート> <div> <p v-for="item in list"> <span v-text="item"></span> </p> <!-- 無限読み込みコンポーネントは、スクロール ボックス内のリストの下部に配置する必要があります。 --> <infinite-loading @infinite="infiniteHandler"></infinite-loading> </div></template><script> 'vue-infinite-loading' から InfiniteLoading をインポートします。 エクスポートデフォルト{ データ() { 戻る { リスト: [] }; }, メソッド: { 無限ハンドラ($state) { // ここでは1秒の読み込み遅延をシミュレートします setTimeout(() => { temp = [] とします。 (i = this.list.length + 1、i <= this.list.length + 20、i++ とします) { temp.push(i); } this.list = this.list.concat(temp); $state.loaded(); }, 1000); }, }, コンポーネント: { InfiniteLoading } </スクリプト> 2. ページングの使用 <テンプレート> <div> <ul> <li class="hacker-news-item" v-for="(item, key) in list"></li> </ul> <無限ロード @infinite="infiniteHandler"> データはもうありません </無限読み込み> </div> </テンプレート> <スクリプト> 'vue-infinite-loading' から InfiniteLoading をインポートします。 'axios' から axios をインポートします。 エクスポートデフォルト{ データ() { 戻る { リスト: [] }; }, メソッド: { 無限ハンドラ($state) { api="http://xxx.com/xxx" とします。 //api はデータアドレスを要求します axios.get(api, { パラメータ: { // ページ番号パラメータ(ページあたり 10 個) ページ: this.list.length / 10 + 1、 }, }).then((応答) => { if (応答データの長さ) { // response.data はリクエスト インターフェイスによって返される配列リストです。this.list = this.list.concat(response.data); $state.loaded(); (this.list.length / 10 === 10)の場合{ // ここでは 10 ページのデータが読み込まれ、これ以上読み込まれないように設定されています $state.complete(); } } それ以外 { $state.complete(); } }); } }, コンポーネント: { InfiniteLoading } }; </スクリプト> 説明: $state: このコンポーネントは、特別なイベント パラメータ $state をイベント ハンドラに渡して、読み込み状態を変更します。$state パラメータには、loaded メソッド、complete メソッド、reset メソッドの 3 つのメソッドが含まれます。
3. 条件付き使用 <テンプレート> <div class="ハッカーニュースリスト"> <div class="ハッカーニュースヘッダー"> <!-- プルダウンして変更 --> <v-model="タグ" @change="changeFilter()">を選択します。 <option value="story">ストーリー</option> <option value="history">履歴</option> </選択> <!--またはクリックして変更--> <button @click="changeFilter()">検索</button> </div> <ul> <li class="hacker-news-item" v-for="(item, key) in list"></li> </ul> <!--ref="infiniteLoading" を設定することを忘れないでください --> <infinite-loading @infinite="infiniteHandler" ref="infiniteLoading"> これ以上のデータはありません </無限読み込み> </div> </テンプレート> <スクリプト> 'vue-infinite-loading' から InfiniteLoading をインポートします。 'axios' から axios をインポートします。 エクスポートデフォルト{ データ() { 戻る { リスト: [], タグ: 'ストーリー', }; }, メソッド: { 無限ハンドラ($state) { 定数api="http://xxx.com/xxx"; //api はデータアドレスを要求します axios.get(api, { パラメータ: { // 変更された条件パラメータタグ: this.tag, ページ: this.list.length / 10 + 1、 }, }).then(({ データ }) => { if (データ結果の長さ) { this.list = this.list.concat(data.result); $state.loaded(); (this.list.length / 20 === 10)の場合{ 状態.complete(); } } それ以外 { $state.complete(); } }); }, //このメソッドを使用して条件バーを変更します changeFilter() { このリスト = []; this.$nextTick(() => { this.$refs.infiniteLoading.$emit('$InfiniteLoading:reset'); }); }, }, コンポーネント: { InfiniteLoading } } </スクリプト> 公式リンク: https://peachscript.github.io/vue-infinite-loading/ GitHub リンク: https://github.com/PeachScript/vue-infinite-loading 上記は、Vue のドロップダウンスクロールでデータを読み込む例の詳細です。Vue のドロップダウンスクロールでデータを読み込む詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
>>: VMware Workstation 14 Pro のインストールとアクティベーションのグラフィック チュートリアル
目次配列分割代入オブジェクトの分解代入分割割り当ての適用変数の値の交換関数から複数の値を返すマップ構...
ファイルとは何ですか?すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると...
目次01 コンテナの本質とは何か? 02 Cgroupテクノロジーと名前空間テクノロジーの概要03 ...
dockerをインストールすると、通常はdockerユーザーグループが作成されます。ステップ2: 現...
HTML でよく使用されるエスケープ文字をまとめると次のようになります。 改行...
この記事では、例を使用して、MySQL クエリのソート関数とクエリ集計関数の使用方法を説明します。ご...
HTML は Hypertext Markup Language の略です。現在、ほとんどの Web...
次のコマンドを実行します: glxinfo | grep レンダリング結果が「はい」の場合、グラフィ...
港Harborは、エンタープライズレベルのプライベートDockerイメージリポジトリを構築するための...
この記事の例では、ドロップダウンリスト選択ボックスを実装するためのJavaScriptの具体的なコー...
序文springboot設定ファイルでは、設定ファイルの名前には独自の意味と用途があります。 dev...
textarea タグはよく使われる HTML タグです。主に長いテキストを入力するときに改行するた...
目次1. インデックスと変数の賢い使用1. インデックスなしの比較テスト2. created_tim...
1. ヘルプコマンド1. 現在のDockerバージョンを表示する docker バージョン2. イメ...
国内の多くの広告主にとって、印刷広告の制作と評価は、しばしばかなり主観的です。自分の感情や美的感覚に...