Vue フォーム処理で大規模なデータ テーブル フォームを処理する方法
Web アプリケーションの開発に伴い、ビッグ データ テーブル フォームの処理が最前線の共通要件の 1 つになりました。 -開発終了 1. Vue フレームワークでは、いくつかのヒントとベスト プラクティスを通じて、フォーム処理のパフォーマンスとユーザー エクスペリエンスを最適化できます。この記事では、大規模なデータ テーブル フォームを処理するいくつかの方法と、対応するコード例を紹介します。
1. ページング読み込み
大規模なデータ フォームを処理する場合、最も一般的な問題は、データの読み込み時間が長すぎて、ページがフリーズしたり応答しなくなったりすることです。この問題を解決するには、ページ読み込みを使用して、データを複数のページに分割して読み込みます。
まず、バックエンド インターフェイスを通じてフォーム データの総数を取得し、何ページに分割する必要があるかを計算します。次に、フロントエンドに変数を作成して、1 に初期化された現在のページ番号を保存します。フォーム データをロードするときは、現在のページのデータのみがロードされます。
サンプル コードは次のとおりです。
<!-- 表单内容 -->
<div v-for="item in formData" :key="item.id">
<!-- 表单字段 -->
</div>
<!-- 分页组件 -->
<pagination :total="total" :current="currentPage" @page-change="handlePageChange" />
<script><br>'./components/pagination.vue' からページネーションをインポート;</p><p>デフォルトの {<br> コンポーネントをエクスポート: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>pagination</pre><div class="contentsignin">ログイン後にコピー</div></div><p>}, <br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { formData: [], // 当前页表单数据 total: 0, // 总数据量 currentPage: 1 // 当前页码 };</pre><div class="contentsignin">ログイン後にコピー</div></div><p>},<br>mounted() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>// 获取总数据量 this.getTotal(); // 加载当前页表单数据 this.getFormData(1);</pre><div class="contentsignin">ログイン後にコピー</div></div><p>},<br> メソッド: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>getTotal() { // 发起接口请求获取总数据量 // 省略具体代码 }, getFormData(page) { // 发起接口请求获取当前页表单数据 // 省略具体代码 this.formData = []; // 将表单数据赋值给formData }, handlePageChange(currentPage) { // 当页码发生变化时,重新加载表单数据 this.getFormData(currentPage); }</pre><div class="contentsignin">ログイン後にコピー</div></div><p>}<br>} ;<br></script>
上記のコードでは、ページネーション コンポーネントを使用してページネーション ボタンを表示し、ページ切り替えイベントに応答します。このコンポーネントは、各ページに表示されるデータの総量とフォームの数に基づいて対応するボタンを生成し、@page-change
イベントをトリガーしてページ番号の変更を親コンポーネントに通知します。
2. 仮想スクロール
大量のデータ量のフォームを処理するもう 1 つの方法は、仮想スクロールを使用することです。仮想スクロールとは、すべてのデータをページにロードするのではなく、フォームの表示領域のデータのみをレンダリングすることを指します。
Vue では、vue-virtual-scroller
などのサードパーティ ライブラリを使用して、仮想スクロールを実装できます。このライブラリは、ウィンドウ サイズとフォーム項目の高さに基づいて表示領域のデータを計算し、データのこの部分のみをレンダリングできます。
サンプル コードは次のとおりです。
<virtual-scroller v-model="visibleFormData" :items="formData" :item-size="itemHeight" />