Element-UI に慣れた開発者なら、無限スクロールの InfiniteScroll が使いにくいという経験をしたことがあるかもしれません。プルダウン読み込みを実装する方法は 2 つあります。 1. el-table-infinite-scrollプラグインを使用する(1)プラグインをインストールする npm インストール --save el-table-infinite-scroll (2)世界規模での輸入と登録 // メイン.js 'el-table-infinite-scroll' から elTableInfiniteScroll をインポートします。 Vue.use(elTableInfiniteScroll); (3)ローカルファイルのインポート <スクリプト> // インポート import elTableInfiniteScroll from 'el-table-infinite-scroll'; エクスポートデフォルト{ // ディレクティブを登録: { 'el-table-infinite-scroll': elTableInfiniteScroll } } </スクリプト> (4)使用上の注意 <el-table :height="テーブルの高さ" v-el-table-infinite-scroll="さらに読み込む"> </el-table> (5)コード例 <テンプレート> <div class="アプリコンテナ"> <el-table :height="テーブルの高さ" v-el-table-infinite-scroll="さらに読み込む" :data="テーブルリスト"> <!-- 表のデータは省略--> </el-table> </div> </テンプレート> <スクリプト> // プラグインをインポートします。 import elTableInfiniteScroll from "el-table-infinite-scroll"; エクスポートデフォルト{ 名前: "インデックス", データ() { 戻る { // テーブルの高さ tableHeight:"", // データの総数 tableCount:0, // テーブルデータリスト tableList:[], // ロード中ですか? tableLoading: false, // テーブル検索条件 tableSearch:{ ページ:1 } } }, // ディレクティブを登録: { "el-table-infinite-scroll": elTableInfiniteScroll、 }, 作成された() { windowHeight を document.documentElement.clientHeight || document.body.clientHeight とします。 // テーブルの高さを動的に計算します。200 は、テーブル以外の画面上の他の要素の高さです。実際の状況によって異なります。 this.tableHeight = windowHeight - 200 + "px"; }, マウントされた(){ テーブルデータを取得します。 }, メソッド: { // テーブルデータをリクエストする getTableData(search) { page = search.page とします。 url = "index?page=" + page;とします。 // 初めてページを開くときは、データを一度読み込む必要があります。データが多すぎて自動的にスクロールがトリガーされないようにするには、読み込みを設定する必要があります。this.tableLoading = true; this.$http.get(url).then((結果) => { (res.code == 10000)の場合{ // データを連結します this.tableList = this.tableList.concat(result.data.list); this.tableCount = 結果.count; this.tableSearch.page = 結果.current; this.tableLoading = false; } }); }, // さらに読み込む loadMore() { if (!this.tableLoading) { this.tableLoading = true; this.tableList.length < this.tableCount の場合 { this.tableSearch.page++; テーブルデータを取得します。 } それ以外 { this.$message("すべてのデータが読み込まれました!"); this.tableLoading = false; } } }, } }; </スクリプト> 2. ドロップダウンの読み込み方法をカスタマイズする上記で使用したプラグインは、Element-UI に依存する必要があります。Element-UI を使用しない場合は、ドロップダウン ロードを自分で記述することしかできません。実装コードは次のとおりです。 <テンプレート> <div class="アプリコンテナ"> <div :style="{height:tableHeight,overflow:'auto'}" id="tableBox"> <!-- 表のデータは省略--> </div> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: "インデックス", データ() { 戻る { // テーブルの高さ tableHeight:"", // データの合計数 tableCount:0, // テーブルデータリスト tableList:[], // ロード中ですか? tableLoading: false, // テーブル検索条件 tableSearch:{ ページ:1 } }; }, 作成された(){ windowHeight を document.documentElement.clientHeight || document.body.clientHeight とします。 // テーブルの高さを動的に計算します。200 はテーブル以外の画面上の他の要素の高さです。実際の状況によって異なります。 this.tableHeight = windowHeight - 200 + 'px'; }, マウント() { テーブルデータを取得します。 document.getElementById("tableBox").addEventListener('scroll',this.onTableScroll); }, 破棄する前に() { // リスニングイベントを削除します window.removeEventListener('scroll', this.onTableScroll) }, メソッド: { onTableScroll(){ var obj = document.getElementById("テーブルボックス"); var scrollHeight = obj.scrollHeight; var scrollTop = obj.scrollTop; var objHeight = obj.offsetHeight; // 100 はしきい値であり、実際の状況に応じて調整できます if(scrollHeight <= (scrollTop + objHeight + 100) && !this.tableLoading && this.tableList.length<this.tableCount){ this.tableLoading = true; this.tableSearch.page++; タイムアウトを設定します(()=>{ テーブルデータを取得します。 },300) } }, getTableData(検索){ page = search.page とします。 url = "index?page=" + page;とします。 // 初めてページを開くときは、データを一度読み込む必要があります。データが多すぎて自動的にスクロールがトリガーされないようにするには、読み込みを設定する必要があります。this.tableLoading = true; this.$http.get(url).then((結果) => { (res.code == 10000)の場合{ // データを連結します this.tableList = this.tableList.concat(result.data.list); this.tableCount = 結果.count; this.tableSearch.page = 結果.current; this.tableLoading = false; } }); }, }, }; </スクリプト> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Docker+daocloudはフロントエンドプロジェクトの自動構築とデプロイを実現します
>>: Mysql でよく使用される時間、日付、変換関数の概要
成果を達成する html <div class="コンテナ"> &l...
ポートが占有されているかどうかは、これまで一度もわかりませんでした。多くの人に尋ねて、ようやくわかり...
目次SVG による画像キャプチャCSS部分エフェクト画像表示ソースコードアドレスこれまで見てきたもの...
1. dockerfileを作成するときにsshパスワードを設定するには、次のコマンドを使用します。...
一般的な提案は、WHERE 条件のインデックスを作成することですが、これは実際には一方的です。インデ...
1. 使用シナリオこのような要件があるため、システムが開発されました。ユーザーがデスクトップを離れ...
目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...
目次1. 準備2. 説明計画の概要3. フィールドの詳細な説明4. パーティションクエリにはパーティ...
1. セマンティゼーションとは何ですか? Bing辞書の説明セマンティクス化とは、適切な HTML ...
この記事では、簡単な画像ドラッグ効果を実現するためのjsの具体的なコードを参考までに紹介します。具体...
1. CPU使用率sar -p (一日中表示) sar -u 1 10 (1: 1秒ごと、10: 1...
目次DockerとはクライアントサイドDocker基本的なDocker操作画像名画像をプルするその他...
ボタンは頻繁に使用されます。ここでは、イベント処理メソッドを整理し、実装方法が多数あることを発見しま...
半夜かけてようやくブログのスタイルを大体完成させることができました。ブログ全体が青を基調としていて、...
圧縮パッケージを解凍して Windows に MySQL をインストールしました。インストール方法は...