ホームページ ウェブフロントエンド Vue.js Vue を使用してテーブルのページングと並べ替えを実装するにはどうすればよいですか?

Vue を使用してテーブルのページングと並べ替えを実装するにはどうすればよいですか?

Jun 25, 2023 pm 02:27 PM
vue シート ページネーション

Vue.js は、開発者が高品質のシングルページ アプリケーションを構築するのに役立つ進歩的な JavaScript フレームワークです。フロントエンド開発が徐々に主流のテクノロジーになるにつれて、テーブルは開発者がこの分野で頻繁に使用する必要があるコンポーネントの 1 つです。テーブル内のデータの量は非常に大きくなる可能性があるため、データを簡単かつ迅速に表示、管理、処理するには、ページングと並べ替えを使用する必要があります。この記事では、Vue を使用してテーブルのページングとソートを実装する方法を詳しく紹介します。

1. テーブルにページネーションを追加する

テーブルにページネーションを追加するには、Vue.js とその他のライブラリを使用する必要があります。

まず、Vue.js がインストールされていることを確認する必要があります。これは、次のコマンドを使用してインストールできます。

npm install vue
ログイン後にコピー

次に、vuejs-paginate というライブラリを使用します。このライブラリは、開発者がページネーション コントロールを迅速に追加するのに役立つ軽量の Vue.js コンポーネントです。

同様に、次のコマンドを使用してライブラリをインストールする必要もあります:

npm install vuejs-paginate
ログイン後にコピー

上記のライブラリをインストールした後、コード内でインポート操作を実行する必要があります:

import Vue from 'vue';
import Paginate from 'vuejs-paginate';
ログイン後にコピー

ここで、Vue コンポーネントに Paginator の使用例を追加できます。

<template>
  <div>
    <table>
      <!-- 这里是表格头 -->
    </table>
    <paginate
      v-model="currentPage"
      :page-count="pageCount"
      :click-handler="pageClick"
      prev-text="上一页"
      next-text="下一页"
      :container-class="'pagination'"
      :page-class="'page-item'"
      :prev-class="'page-item'"
      :next-class="'page-item'"
      :page-link-class="'page-link'"
      :prev-link-class="'page-link'"
      :next-link-class="'page-link'"
      :disable-next="currentPage === pageCount"
      :disable-prev="currentPage === 1"
      :always-show-prev-next="true"
    />
  </div>
</template>
ログイン後にコピー

このコードは、table タグを定義し、その下に paginate タグを追加します。 paginate タグには、前のページと次のページへのボタンが含まれます。また、currentPage 名を currentPage に設定する、pageClick 関数を使用してページ クリック イベントを処理する、pageCount プロパティを介して総ページ数を指定するなど、いくつかのプロパティも定義しました。

2. テーブルに並べ替えを追加する

テーブルの並べ替えを追加する前に、テーブル内のデータ項目が配列に含まれるオブジェクトであることを確認する必要があります (例:

[
  {
    id: 1,
    name: '第1项'
  },
  {
    id: 2,
    name: '第2项'
  },
  {
    id: 3,
    name: '第3项'
  }
]
ログイン後にコピー
#)。 ## 並べ替えは、必要なデータをすばやく見つけるために、管理者がデータ項目のさまざまな属性に基づいてユーザーを並べ替えることができる必要がある管理者のバックエンド アプリケーションなど、多くのシナリオで必要です。

テーブルに並べ替えを追加するには、Vue.js と lodash と呼ばれる JavaScript ライブラリを使用できます。 Linux または macOS では、次のコマンドを使用して lodash をインストールできます:

npm install lodash
ログイン後にコピー

開発環境でエラーが発生した場合は、次のコマンドを使用してインストールしてみてください:

npm install --save-dev lodash
ログイン後にコピー

Lodash ライブラリは、便利な機能がたくさんあり、Vue.js アプリケーションでの使用に最適です。この例では、lodash の orderBy 関数を使用する必要があります。 Vue コンポーネントでは、次のコードを使用して関数をインポートして呼び出すことができます。

import Vue from 'vue'
import _ from 'lodash'

export default {
  name: 'table-component',

  data () {
    return {
      tableData: [
        { id: 1, name: "John Doe", age: 32, email: "john.doe@example.com" },
        { id: 2, name: "Jane Doe", age: 30, email: "jane.doe@example.com" },
        { id: 3, name: "Mark Johnson", age: 25, email: "mark.johnson@example.com" },
        { id: 4, name: "Larry Smith", age: 45, email: "larry.smith@example.com" },
        { id: 5, name: "Robert Williams", age: 38, email: "robert.williams@example.com" },
        { id: 6, name: "David Brown", age: 26, email: "david.brown@example.com" },
        { id: 7, name: "Sarah Davis", age: 27, email: "sarah.davis@example.com" },
        { id: 8, name: "Julie Robinson", age: 35, email: "julie.robinson@example.com" }
      ],
      columns: ['id', 'name', 'age', 'email'],
      sortOrder: {
        column: 'id',
        order: 'asc'
      }
    }
  },

  methods: {
    sortTableData (column) {
      if (this.sortOrder.column === column) {
        this.sortOrder.order = this.sortOrder.order === 'asc' ? 'desc' : 'asc'
      } else {
        this.sortOrder.column = column
        this.sortOrder.order = 'asc'
      }

      this.tableData = _.orderBy(this.tableData, this.sortOrder.column, this.sortOrder.order)
    }
  },

  mounted () {
    this.tableData = _.orderBy(this.tableData, this.sortOrder.column, this.sortOrder.order)
  }
}
ログイン後にコピー
この例では、テーブル データを含む tableData と、すべての列名を含む columns 配列があります。また、テーブル データに適用される現在の並べ替え順序を含む sortOrder オブジェクトもあります。 selectTableSort 関数は、ユーザーが特定の列をクリックしたときに特定の列ヘッダーによって並べ替える並べ替えハンドラーです。

lodash の orderBy 関数を使用して、tableData 配列を並べ替えます。関数の最初のパラメータは並べ替えるスライス内の配列、2 番目のパラメータは並べ替えに使用するフィールドの名前、3 番目のパラメータは並べ替え順序 (昇順または降順) を指定します。

最後に、 this.sortTableData('id') を使用してメソッド内で sortTableData メソッドを呼び出し、最初にテーブル データを ID 列で並べ替えます。

概要

この記事では、Vue.js を使用してテーブルのページングと並べ替えを実装する方法を詳しく紹介しました。 vuejs-paginate ライブラリを使用すると、ページネーション機能を簡単に追加できます。同時に、lodash ライブラリの orderBy 関数を使用すると、テーブルに並べ替え機能をすばやく追加できます。

テーブルは、Vue.js 開発の一般的なコンポーネントです。フロントエンド開発者として働く場合でも、フルスタック開発者として働く場合でも、これらのスキルを習得すると、データの処理と管理が容易になり、高品質のアプリケーションを迅速に構築できるようになります。

以上がVue を使用してテーブルのページングと並べ替えを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VueでBootstrapの使用方法 VueでBootstrapの使用方法 Apr 07, 2025 pm 11:33 PM

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

VueでWatchの使用方法 VueでWatchの使用方法 Apr 07, 2025 pm 11:36 PM

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

Vue Multi-Page開発とはどういう意味ですか? Vue Multi-Page開発とはどういう意味ですか? Apr 07, 2025 pm 11:57 PM

VUEマルチページ開発は、VUE.JSフレームワークを使用してアプリケーションを構築する方法です。アプリケーションは別々のページに分割されます。コードメンテナンス:アプリケーションを複数のページに分割すると、コードの管理とメンテナンスが容易になります。モジュール性:各ページは、簡単に再利用および交換するための別のモジュールとして使用できます。簡単なルーティング:ページ間のナビゲーションは、単純なルーティング構成を介して管理できます。 SEOの最適化:各ページには独自のURLがあり、SEOに役立ちます。

Vueによる前のページに戻る方法 Vueによる前のページに戻る方法 Apr 07, 2025 pm 11:30 PM

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

React vs. Vue:Netflixはどのフレームワークを使用していますか? React vs. Vue:Netflixはどのフレームワークを使用していますか? Apr 14, 2025 am 12:19 AM

netflixusesaCustomframeworkは、「ギボン」ビルトンリアクト、notreactorvuedirectly.1)チームエクスペリエンス:seice basedonfamperivity.2)projectomplerprojects:vueforsplerprojects、racefforcomplexones.3)customeforsneeds:reactofforsmorefloficailie.

vue.jsでJSファイルを参照する方法 vue.jsでJSファイルを参照する方法 Apr 07, 2025 pm 11:27 PM

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

VUEトラバーサルの使用方法 VUEトラバーサルの使用方法 Apr 07, 2025 pm 11:48 PM

Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。

See all articles