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 でよく使用される時間、日付、変換関数の概要
<TD> タグの属性は、テーブル内のセルのプロパティを設定するために使用されます。表 &...
1.構文TIMESTAMPDIFF(unit,begin,end); 単位に従って時間差を返します。...
1. ダウンロード参考: https://www.jb51.net/softs/451120.ht...
目次序文ステップ1: セットアップと前方屈折ステップ2: 反射とフレネル方程式ステップ3: 多面屈折...
SQL を使用してデータを抽出する場合、テーブル内で重複した値に遭遇することがよくあります。たとえ...
目次1. Tsとは何か2. 基本的な文法1. プリミティブデータ型を宣言する2. オブジェクト型を宣...
アンカータグの使用法:同じドキュメント内の特定の場所にリンクすることをアンカー リンクと呼びます。ア...
<br />ホームページの右側にあるスクロールバーを削除するにはどうすればよいですか? ...
最近、業務上のボタンの増加により、ページレイアウトにボタンが多すぎて、ページが美しくなく、ユーザーエ...
序文以前、rem適応についての記事を書きましたが、具体的なパッケージは紹介しませんでした。今日は、よ...
目次1. プラットフォームバスの紹介1.1. Linuxドライバの分離と階層化1.1.1. Linu...
構造本文、見出し、HTML、タイトル文章abbr、頭字語、アドレス、引用ブロック、br、引用、コード...
目次1. プロジェクトの説明2. Nginxイメージの作成3. MySQLイメージの作成4. PHP...
関連する依存関係をインストールするnpm i lib-flexible --save npm i p...
この記事では、MySQLのプリコンパイル機能について紹介します。具体的な内容は以下のとおりです。 1...