ホームページ  >  記事  >  ウェブフロントエンド  >  Bootstrap4とVue2はページングクエリ機能を実装(コード添付)

Bootstrap4とVue2はページングクエリ機能を実装(コード添付)

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-14 10:37:292236ブラウズ

今回は、ページング クエリ機能を実装するための Bootstrap 4 と Vue2 について説明します (コード付き)。ページング クエリ機能を実装するために Bootstrap 4 と Vue2 が実装する 注意事項 は何ですか。以下は実際的なケースです。見てください。

前に書いてあります

このプロジェクトは、フロントエンドとバックエンドを分離するように設計されており、フロントエンドのリソース サーバーとして Nginx を使用し、同時にバックエンド サービスのリバース プロキシを実現します。バックグラウンドは、Tomcat を使用してサービスをデプロイする Java Web プロジェクトです。

  1. フロントエンドフレームワーク: Bootstrap4、Vue.js2

  2. バックエンドフレームワーク: Spring Boot、Spring Data JPA

  3. 開発ツール: IntelliJ IDEA、Maven

Bootstrap + Vue を使用して動的なテーブル、データの追加、削除などの操作を実装する方法については、Bootstrap + Vue.js を使用して動的なテーブルの表示、追加、削除を実装するを参照してください。説明が終わったら、この記事の本題に入ります。

1. ブートストラップを使用してテーブルを構築します

テーブルエリア

りぃ

ページネーションエリア

rreee

2. Vueオブジェクトとデータ

を初期化する Vue オブジェクトを作成する

<p class="row">
   <table class="table table-hover table-striped table-bordered table-sm">
    <thead class="">
    <tr>
     <th><input type="checkbox"></th>
     <th>序号</th>
     <th>会员号</th>
     <th>姓名</th>
     <th>手机号</th>
     <th>办公电话</th>
     <th>邮箱地址</th>
     <th>状态</th>
    </tr>
    </thead>
    <tbody>
    <tr v-for="(user,index) in userList">
     <td><input type="checkbox" :value="index" v-model="checkedRows"></td>
     <td>{{pageNow*10 + index+1}}</td>
     <td>{{user.id}}</td>
     <td>{{user.username}}</td>
     <td>{{user.mobile}}</td>
     <td>{{user.officetel}}</td>
     <td>{{user.email}}</td>
     <td v-if="user.disenable == 0">正常</td>
     <td v-else>注销</td>
    </tr>
    </tbody>
   </table>
  </p>
初期化データ

<p class="row mx-auto">
   <ul class="nav justify-content-center pagination-sm">
    <li class="page-item">
     <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="page-link"><i class="fa fa-fast-backward" @click="switchToPage(0)"> </i></a>
    </li>
    <li class="page-item">
     <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="page-link"><i class="fa fa-backward" @click="switchToPage(pageNow-1)"></i></a>
    </li>
    <li class="page-item" v-for="n in totalPages" :class="{active:n==pageNow+1}">
     <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" @click="switchToPage(n-1)" class="page-link">{{n}}</a>
    </li>
    <li class="page-item">
     <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="page-link"><i class="fa fa-forward" @click="switchToPage(pageNow+1)"></i></a>
    </li>
    <li class="page-item">
     <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="page-link"><i class="fa fa-fast-forward" @click="switchToPage(totalPages-1)"></i></a>
    </li>
   </ul>
  </p>
完全な JS コード:

var vueApp = new Vue({
  el:"#vueApp",
  data:{
   userList:[],
   perPage:10,
   pageNow:0,
   totalPages:0,
   checkedRows:[]
  },
  methods:{
   switchToPage:function (pageNo) {
    if (pageNo < 0 || pageNo >= this.totalPages){
     return false;
    }
    getUserByPage(pageNo);
   }
  }
 });

3. JPA を使用してページング クエリを実装する

コントローラーがリクエストを受け取ります

function getUserByPage(pageNow) {
 $.ajax({
  url:"/user/"+pageNow,
  success:function (datas) {
  vueApp.userList = datas.content;
  vueApp.totalPages = datas.totalPages;
  vueApp.pageNow = pageNow;
  },
  error:function (res) {
  console.log(res);
  }
 });
 }
JPA ページング クエリ

<script>
 var vueApp = new Vue({
 el:"#vueApp",
 data:{
  userList:[],
  perPage:10,
  pageNow:0,
  totalPages:0,
  checkedRows:[]
 },
 methods:{
  switchToPage:function (pageNo) {
  if (pageNo < 0 || pageNo >= this.totalPages){
   return false;
  }
  getUserByPage(pageNo);
  }
 }
 });
 getUserByPage(0);
 function getUserByPage(pageNow) {
 $.ajax({
  url:&quot;/user/&quot;+pageNow,
  success:function (datas) {
  vueApp.userList = datas.content;
  vueApp.totalPages = datas.totalPages;
  vueApp.pageNow = pageNow;
  },
  error:function (res) {
  console.log(res);
  }
 });
 }
</script>
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

webpack を使用してマルチページ アプリケーションを構築する手順の分析

axios 画像をアップロードするためのプログレス バーを追加する方法

vue が axios を使用する場合、これはどこで起こるのか

以上がBootstrap4とVue2はページングクエリ機能を実装(コード添付)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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