Vue+AJAX实现图片分页展示:下一页、上一页轻松切换
要实现这个功能,我们需要使用Vue.js来处理数据绑定和DOM渲染,并使用AJAX请求从API获取数据。以下是一个完整的示例代码: HTML部分 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Image Gallery</title> <script src="https://cdn.jsdelivr.net/npm/vue@2"></script> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <div id="app"> <ul> <li v-for="image in images" :key="image.id"> <img :src="image.url" alt="Image" /> </li> </ul> <button @click="prevPage" :disabled="currentPage === 0">上一页</button> <button @click="nextPage">下一页</button> </div> <script src="app.js"></script> </body> </html> ``` JavaScript部分 (app.js) ```javascript new Vue({ el: '#app', data: { images: [], currentPage: 0, size: 10 }, methods: { fetchData() { const url = `https://api.apiopen.top/api/getimages?page=${this.currentPage}&size=${this.size}`; $.ajax({ url: url, method: 'GET', success: (response) => { this.images = response.data; }, error: (error) => { console.error('Error fetching data:', error); } }); }, nextPage() { this.currentPage++; this.fetchData(); }, prevPage() { if (this.currentPage > 0) { this.currentPage--; this.fetchData(); } } }, created() { this.fetchData(); } }); ``` 解释 1. HTML部分: - 包含一个`<div id="app">`作为Vue实例的挂载点。 - 使用`v-for`指令遍历`images`数组,生成图片列表。 - 两个按钮分别用于“上一页”和“下一页”,并绑定相应的点击事件。 2. JavaScript部分: - 创建一个新的Vue实例,挂载到`#app`元素。 - `data`对象中定义了`images`(存储图片数据)、`currentPage`(当前页码)和`size`(每页大小)。 - `methods`对象中定义了三个方法: - `fetchData`:发送AJAX请求获取数据,并更新`images`数组。 - `nextPage`:增加`currentPage`的值并调用`fetchData`。 - `prevPage`:减少`currentPage`的值并调用`fetchData`,如果已经是第一页则不执行任何操作。 - `created`钩子在实例创建时调用`fetchData`以加载初始数据。 这样,当用户点击“下一页”按钮时,会加载下一页的数据并更新DOM;点击“上一页”按钮时,会返回上一页的数据并更新DOM。 ######[AI写代码神器 | 847点数解答 | 2024-11-14 20:59:06]
- 湖南2025届高考物理公式手册网页:优化指南与注意要点大揭秘(DeepSeek | 405点数解答 | 2025-05-28 22:10:21)189
- "Debugging 'Cannot Read Properties of Null (reading \'userid\')' Error in Vue Components: Steps and Example"(讯飞星火 | 614点数解答 | 2024-11-28 14:31:57)293
- "Debugging 'Cannot Read Properties of Null (Reading 'userid')' Error: A Step-by-Step Guide"(讯飞星火 | 523点数解答 | 2024-11-28 14:32:05)270
- 解决 “Cannot read properties of null (reading 'userid')” 错误的代码修改方案(讯飞星火 | 516点数解答 | 2024-11-28 14:32:43)307
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)384
- Three.js实现可360°观察正交长方体:代码分析、优化与注意要点(DeepSeek | 466点数解答 | 2025-03-01 11:35:41)269
- 现场品管生产日检查表网页开发:功能、优化与开发注意事项揭秘(DeepSeek | 312点数解答 | 2025-11-13 12:59:01)106
- Android开发:用Intent轻松实现Activity切换与数据传递(阿里通义 | 308点数解答 | 2023-11-07 22:46:17)321
- JavaScript开发:Button插件装载、切换及复选框、单选框处理全解析(阿里通义 | 378点数解答 | 2023-11-09 01:25:25)355
- 深度剖析:Vue 3.0 Composition API 与 Vue 2.x Options API 的六大区别(阿里通义 | 342点数解答 | 2023-11-09 01:34:53)348
- Javascript开发必知:Vue.extend与Vue.component的区别大揭秘!(阿里通义 | 339点数解答 | 2023-11-09 01:36:22)323
- Vue项目代码优化:职位详情异常处理、简历校验与收藏操作提示升级 (GPT | 136点数解答 | 2024-12-29 17:09:05)251