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コンテナをデプロイする方法

推薦する

リンクをクリックしたときに表示される点線のボックスを削除するいくつかの方法

削除する方法はいくつかあります:リンクを直接追加するonfocus="this.blur(...

MySQLカバーインデックスの利点

一般的な提案は、WHERE 条件のインデックスを作成することですが、これは実際には一方的です。インデ...

Centos7のホスト名を変更する3つの方法

方法 1: hostnamectl の変更ステップ1 ホスト名を確認するホスト名ステップ2 ホスト名...

Windows 2008 Server サブドメインを親ドメインに追加すると、ドメインが既に存在するというエラー メッセージが表示されます。

Windows 2008 Serverのサブドメインを親ドメインに参加させると、「ドメインは既に存...

CSSクラス名の問題の詳細な説明

数字で始まる次の CSS クラス名は有効になりません。 .1番目{ 色: 赤; }有効な CSS ク...

Linuxでブーストライブラリをインストールするための完全な手順

序文Boost ライブラリは、標準ライブラリのバックアップとして機能し、C++ 標準化プロセスの開発...

フレックスレイアウトにおけるflex-growとflex-shrinkの計算方法の詳しい説明

CSS のFlex(彈性布局)すると、Web ページのレイアウトを柔軟に制御できます。Flex Fl...

HTML 9グリッドレイアウトの実装方法

ウェブサイトのレイアウトの多様化は、当社のフロントエンドの得意分野です。最近、UC ブラウザのデフォ...

初心者のためのMySQL外部キーの設定方法

目次外部キーの役割mysql 外部キー設定方法要約する外部キーの役割データの一貫性、整合性を維持し、...

1 つの記事で Vuex を理解する

目次概要Vuex の 4 つの主要オブジェクト状態の使用突然変異の使用ゲッターの使用アクションの使用...

MySQL 8.0.17 のインストールと使用方法のチュートリアル図

前面に書かれた過去および現在のプロジェクトで最も一般的に使用されているリレーショナル データベースは...

Nodejs でタイムドクローラーを実装する完全な例

目次事件の原因Node Scheduleを使用してスケジュールされたタスクを実装する1. node-...

Vue.js スロットにおけるスコープ付きスロットの使用法の詳細な説明

目次スロットなしVue2.x スロットスロット付き名前付きスロットスロット属性なしスロットの簡単なサ...

VUE 3 テレポート コンポーネントと使用構文をすぐに使い始める

目次1. テレポートの紹介1.1. 複数のテレポートを使用する2. テレポートを使用する理由3. テ...

vue3+ts+EsLint+Prettier 標準コード実装

目次使用EsLintの使用プロフィールを追加するPrettierの使用huskyとlint-stag...