Heim > Web-Frontend > js-Tutorial > Bootstrap4 und Vue2 implementieren die Paging-Abfragefunktion (Code im Anhang)

Bootstrap4 und Vue2 implementieren die Paging-Abfragefunktion (Code im Anhang)

php中世界最好的语言
Freigeben: 2018-04-14 10:37:29
Original
2361 Leute haben es durchsucht

Dieses Mal bringe ich Ihnen Bootstrap4 und Vue2, um die Paging-Abfragefunktion (mit Code) zu implementieren. Was sind die Vorsichtsmaßnahmen für die Implementierung der Paging-Abfragefunktion zwischen Bootstrap 4 und Vue2? . Hier ist der eigentliche Kampf. Schauen wir uns den Fall an.

steht vor

Das Projekt zielt darauf ab, Front- und Back-End zu trennen, Nginx als Front-End-Ressourcenserver zu verwenden und gleichzeitig den Reverse-Proxy des Back-End-Dienstes zu realisieren. Der Hintergrund ist ein Java-Webprojekt, bei dem Tomcat zum Bereitstellen von Diensten verwendet wird.

  1. Front-End-Framework: Bootstrap4, Vue.js2

  2. Backend-Framework: Spring Boot, Spring Data JPA

  3. Entwicklung Tools: IntelliJ IDEA, Maven

Informationen zur Verwendung von Bootstrap + Vue zum Implementieren dynamischer Tabellen, zum Hinzufügen und Löschen von Daten sowie anderer Vorgänge finden Sie unter Verwenden von Bootstrap + Vue.js zum Implementieren der dynamischen Anzeige, Hinzufügung und Löschung von Tabellen. Nachdem die Erklärung abgeschlossen ist, beginnt das Thema dieses Artikels.

1. Verwenden Sie Bootstrap, um eine Tabelle zu erstellen

Tischbereich

<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>
Nach dem Login kopieren

Paginierungsbereich

<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>
Nach dem Login kopieren

2. Vue Objekt und Daten

initialisieren Vue-Objekt erstellen

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);
   }
  }
 });
Nach dem Login kopieren

Initialisierungsdaten

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);
  }
 });
 }
Nach dem Login kopieren

Vollständiger js-Code:

<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>
Nach dem Login kopieren

3. Verwenden Sie JPA, um Paging-Abfragen zu implementieren

Controller empfängt Anfrage

/**
 * 用户相关请求控制器
 * @author louie
 * @date 2017-12-19
 */
@RestController
@RequestMapping("/user")
public class UserController {
 @Autowired
 private UserService userService;
 /**
 * 分页获取用户
 * @param pageNow 当前页码
 * @return 分页用户数据
 */
 @RequestMapping("/{pageNow}")
 public Page<User> findByPage(@PathVariable Integer pageNow){
 return userService.findUserPaging(pageNow);
 }
}
Nach dem Login kopieren

JPA-Paging-Abfrage

@Service
public class UserServiceImpl implements UserService {
 @Value("${self.louie.per-page}")
 private Integer perPage;
 @Autowired
 private UserRepository userRepository;
 @Override
 public Page<User> findUserPaging(Integer pageNow) {
 Pageable pageable = new PageRequest(pageNow,perPage,Sort.Direction.DESC,"id");
 return userRepository.findAll(pageable);
 }
}
Nach dem Login kopieren

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Analyse der Schritte zum Erstellen einer mehrseitigen Anwendung mit Webpack

So fügen Sie eine hinzu Fortschrittsbalken zum Hochladen von Bildern in Axios

Wo bleibt dieser Punkt, wenn Vue Axios verwendet

Das obige ist der detaillierte Inhalt vonBootstrap4 und Vue2 implementieren die Paging-Abfragefunktion (Code im Anhang). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage