Vue3 テーブルコンポーネントの使用

Vue3 テーブルコンポーネントの使用

1. Antデザインビュー

大量のデータを表示する必要がある場合、通常はレポートの形式で提示します。直感的な習慣に従って、行と列のデータを表示するにはtableを使用する必要があります。

したがって、データをバインドするには、 Ant Design Vueコンポーネント ライブラリのtableコンポーネントを使用する必要があります。

1. 公式ウェブサイトアドレス

公式ウェブサイトアドレス: https://2x.antdv.com/components/table-cn#API

2. 使い方

まずは電子書籍管理ページをリニューアルし、レイアウトを調整しました。

サンプルコードは次のとおりです。

<テンプレート>
  <a-layout クラス="layout">
    <レイアウトコンテンツ
        :style="{ 背景: '#fff', パディング: '24px', 最小高さ: '280px' }">
      <div class="about">
        <h1>電子書籍管理ページ</h1>
      </div>
    </a-レイアウトコンテンツ>
  </a-レイアウト>

 
</テンプレート>

効果は以下のとおりです。

3.電子書籍テーブルを表示する

やるべきこと:

  • テーブルレンダリング
  • slots : カスタムレンダリング
  • title : ヘッダーレンダリング
  • customRender : 値のレンダリング

サンプルコードは次のとおりです。

<テンプレート>
  <a-layout クラス="layout">
    <レイアウトコンテンツ
        :style="{ 背景: '#fff', パディング: '24px', 最小高さ: '280px' }">
      <a-table :columns="列"
               :data-source="ebooks1"
               :pagination="ページ区切り"
               :loading="読み込み中"
      >
        <テンプレート #cover="{ テキスト: カバー }">
          <img v-if="カバー" :src="カバー" alt="アバター"/>
        </テンプレート>
        <テンプレート #name="{ テキスト: 名前 }">
          <a>{{ テキスト }}</a>
        </テンプレート>
        <テンプレート #カスタムタイトル>

      <span>
        <smile-outlined/>
        名前
      </span>
          </テンプレート>
          <テンプレート #action="{ レコード }">
      <span>
        <a-スペースサイズ="small">
            <a-button type="primary" @click="編集(記録)">
              編集</a-button>
             <a-button type="危険">
                削除</a-button>
          </a-スペース>
      </span>
          </テンプレート>
      </a-テーブル>
    </a-レイアウトコンテンツ>
  </a-レイアウト>

</テンプレート>
<script lang="ts">
'@ant-design/icons-vue' から {SmileOutlined、DownOutlined} をインポートします。
'vue' から {defineComponent、onMounted、reactive、ref、toRef} をインポートします。
'axios' から axios をインポートします。

エクスポートデフォルトdefineComponent({
  名前: 'AdminEbook',
  設定() {
    const ページネーション = {
      onChange: (ページ: 番号) => {
        console.log(ページ);
      },
      ページサイズ: 3,
    };

    const ロード = ref(false);
    定数列 = [
      {
        タイトル: 「カバー」、
        データインデックス: 'カバー',
        スロット: {customRender: 'cover'}
      },
      {
        タイトル: '名前',
        データインデックス: '名前'
      },
      {
        タイトル:「分類1」、
        データインデックス: 'category1Id',
        キー: 'category1Id',
      },
      {
        タイトル:「分類2」
        データインデックス: 'category2Id',
        キー: 'category2Id',
      },
      {
        タイトル: 「文書数」
        データインデックス: 'docCount'
      },
      {
        タイトル: 「読書番号」
        データインデックス: 'viewCount'
      },
      {
        タイトル: 「いいね数」
        データインデックス: 'voteCount'
      },
      {
        タイトル: 「アクション」
        キー: 'アクション'、
        スロット: {customRender: 'action'}
      }
    ];
    //データバインディングにはrefを使用します。const ebooks = ref();
    // リアクティブデータバインディングを使用する const ebooks1 = reactive({books: []})
    マウント時(() => {
      axios.get("/ebook/list?name=").then(応答 => {
        定数データ = レスポンス.データ;
        ebooks.value = データコンテンツ;
        ebooks1.books = データコンテンツ;
      })
    })
    戻る {
      ページネーション、
      読み込み中、
      列、
      電子書籍1: 電子書籍、
      ebooks2: toRef(ebooks1, "書籍")
    }
  },
  コンポーネント:
    スマイルアウトライン、
    下向きのアウトライン、
  },
});
</スクリプト>
<スタイルスコープ>
画像 {
  幅: 50px;
  高さ: 50px;
}
</スタイル>

実際の効果:

2. 結論

tableコンポーネントの使用に慣れていない場合は、何度も試してみる必要があります。簡単に言えば、これはオブジェクト プロパティのマッピングです。

一般的には、ページを表示する前にデータをバインドする方がよいでしょう。よくわからない場合は、こちらの記事「Vue3 リスト インターフェース データ表示の詳細」を参照してください。

Vue3 テーブル コンポーネントの使用に関するこの記事はこれで終わりです。Vue3 テーブル コンポーネントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue Elementのテーブルコンポーネントをカプセル化する方法
  • Vue Elementのテーブルコンポーネントをカプセル化する詳細な例
  • vxe-table vue テーブル テーブル コンポーネント 関数
  • Vue.js はソート可能なテーブルコンポーネント関数の例を実装します
  • Vue でシンプルなテーブルコンポーネントを実装する詳細な例
  • Vue 固定ヘッダー、固定列、クリック テーブル ヘッダー、ソート可能なテーブル コンポーネント
  • Vue.js テーブルコンポーネントの開発の詳細な例
  • Vue+elementuiはドロップダウンテーブルの複数選択と検索機能を実現します
  • vue+Element のテーブルは編集可能です (ドロップダウン ボックスを選択)
  • Vueはドロップダウンテーブルコンポーネントを実装します

<<:  MySQL 8.0 オンライン DDL クイック列追加の概要

>>:  DockerでMongoDBコンテナをデプロイする方法

推薦する

jsはユーザーのページ操作を記憶するためにクッキーを使用します

序文開発プロセスでは、ブラウザレベルでユーザーが実行した操作を記憶するなど、同様の要件に遭遇すること...

HiveメタデータをMySQLに設定するプロセス全体

Hiveのインストールディレクトリで、confディレクトリに入り、hive-site.xmlファイル...

jsシミュレーションでJingdongの詳細ページで画像を拡大する効果を実現

この記事では、Jingdongの詳細ページの画像の拡大を実現するためのjsの具体的なコードを紹介しま...

js配列forEachインスタンスの詳細な使用方法

1. forEach() は map() に似ています。これも渡された関数に各要素を順番に適用します...

Linux での fuser コマンドの使用法の詳細な説明

説明する: fuser は、現在ディスク上のファイル、マウント ポイント、さらにはネットワーク ポー...

Centos7 への mysql8.0rpm のインストール チュートリアル

まず、図をダウンロードしてください 1. まず、centos7に付属しているmariadbをアンイン...

Linux で pyenv をインストールする方法

前提条件gitをインストールする必要があるインストール手順1. リモートリポジトリからpyenvをク...

MySQLの文字セットを変更する方法

1. MySQLの文字セットを確認する '%char%' のような変数を表示します。...

React NativeプロジェクトでLottieアニメーションを使用する方法

Lottie は、Airbnb が開発した iOS、Android、React Native 向けの...

Dockerコンテナ間の通信と外部ネットワーク通信の操作

コンテナ間の通信1. コンテナのネットワーク共有このモードの Docker コンテナはネットワーク ...

TypeScript の Enum が問題となる理由

目次どうしたの?いつ使うか列挙の数を制御するビット値コントロールインデックス非数値列挙結論はType...

Linux で JDK 環境を構成する方法

1. 公式ウェブサイトにアクセスして、jdk-8u162-linux-x64.tar.gzなどのLi...

CSS で中空マスク レイヤーを実装するサンプル コード

この記事の内容: ページ中空マスクレイヤー、ページ中空マスクガイドレイヤー、画像中空マスク通常のマス...

Pagoda Panel のインストール時にサーバーがデータベースにリモート接続できない問題の解決策

自分のウェブサイトを構築する予定なので、618 プロモーションを利用して Tencent Cloud...

Vue3における7種類のコンポーネント通信の詳細

目次1. Vue3コンポーネント通信方式2. Vue3通信の使い方2.1 小道具2.2 $エミット2...