我的编程空间,编程开发者的网络收藏夹
学习永远不晚

基于SpringBoot和Vue3的博客平台文章列表与分页功能实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

基于SpringBoot和Vue3的博客平台文章列表与分页功能实现

在前面的教程中,我们已经实现了基于Spring Boot和Vue3的发布、编辑、删除文章功能。本教程将继续引导您实现博客平台的文章列表与分页功能。

在本教程中,我们实现了基于Spring Boot和Vue3的博客平台文章列表与分页功能。整个实现过程可以分为以下几个步骤:

  1. 后端Spring Boot实现 1.1. 修改ArticleMapper接口:添加新的findPage方法以支持分页查询。 1.2. 修改ArticleService接口及实现:替换findAll方法为findPage方法,并实现分页查询逻辑。 1.3. 修改ArticleController类:更新list方法,接收分页参数,并调用findPage方法获取分页数据。
  2. 前端Vue3实现 2.1. 修改文章列表页面组件:在ArticleList.vue组件中,修改fetchArticles方法,接收分页参数,并将数据显示在表格中。 2.2. 添加分页组件:在文章列表页面中,添加<el-pagination>组件以实现分页功能。当用户更改分页大小或当前页时,分别触发handleSizeChange和handleCurrentChange方法,重新获取文章列表数据。

在这个过程中,我们首先修改了后端Spring Boot应用程序,为ArticleMapper接口添加了支持分页查询的方法,并相应地修改了ArticleService和ArticleController类。然后,我们修改了前端Vue3应用程序,实现了根据分页参数获取文章列表数据的功能,并添加了一个分页组件以方便用户进行翻页操作。

通过这种方式,我们实现了博客平台的文章列表与分页功能,使得用户可以更方便地查看大量文章。您可以根据实际需求对这些功能进行进一步的优化和扩展。

1. 后端Spring Boot实现

我们将使用Spring Boot作为后端框架,并使用MySQL作为数据库。

1.1 修改ArticleMapper接口

为了支持分页功能,我们需要修改ArticleMapper.java文件,添加一个新方法findPage,同时更新findAll方法为findPage方法。

@Mapper
public interface ArticleMapper {
    List<Article> findPage(@Param("offset") int offset, @Param("pageSize") int pageSize);
    Article findById(Integer id);
    void insert(Article article);
    void update(Article article);
    void delete(Integer id);
    int count();
}

1.2 修改ArticleService接口及实现

ArticleService.java文件中,将findAll方法替换为findPage方法,同时添加一个新方法count

public interface ArticleService {
    List<Article> findPage(int offset, int pageSize);
    Article findById(Integer id);
    void create(Article article);
    void update(Article article);
    void delete(Integer id);
    int count();
}

接着,在ArticleServiceImpl.java文件中,修改对应的实现。

@Service
public class ArticleServiceImpl implements ArticleService {
    @Autowired
    private ArticleMapper articleMapper;
 
    @Override
    public List<Article> findPage(int offset, int pageSize) {
        return articleMapper.findPage(offset, pageSize);
    }
 
    // ...其他方法不变
}

1.3 修改ArticleController类

ArticleController.java文件中,修改list方法,接收pagepageSize参数,并调用findPagecount方法获取分页数据。

@RestController
@RequestMapping("/api/article")
public class ArticleController {
    @Autowired
    private ArticleService articleService;
 
    @GetMapping
    public Result list(@RequestParam(required = false, defaultValue = "1") int page,
                       @RequestParam(required = false, defaultValue = "10") int pageSize) {
        int offset = (page - 1) * pageSize;
        List<Article> articles = articleService.findPage(offset, pageSize);
        int totalCount = articleService.count();
        return Result.success("获取文章列表成功", new PageData<>(articles, totalCount, pageSize, page));
    }
 
    // ...其他方法不变
}

2. 前端Vue3实现

2.1 修改文章列表页面组件

ArticleList.vue组件中,修改fetchArticles方法,接收pagepageSize参数,并将数据显示在表格中。同时,添加<el-pagination>组件实现分页。

<template>
  <div>
    <el-table :data="articles">
      <el-table-column prop="id" label="ID" width="80"></el-table-column>
      <el-table-column prop="title" label="标题"></el-table-column>
      <el-table-column label="操作" width="180">
        <template v-slot="{ row }">
          <el-button @click="editArticle(row.id)">编辑</el-button>
          <el-button type="danger" @click="deleteArticle(row.id)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="page"
      :page-sizes="[10, 20, 30, 40]"
      :page-size="pageSize"
      layout="total, sizes, prev, pager, next, jumper"
      :total="total">
    </el-pagination>
  </div>
</template>
 
<script>
import { ref } from "vue";
import axios from "axios";
 
export default {
  setup() {
    const articles = ref([]);
    const total = ref(0);
    const page = ref(1);
    const pageSize = ref(10);
 
    const fetchArticles = async (page, pageSize) => {
      const response = await axios.get("/api/article", {
        params: {
          page: page,
          pageSize: pageSize
        }
      });
      articles.value = response.data.data.list;
      total.value = response.data.data.total;
    };
 
    const handleSizeChange = (val) => {
      pageSize.value = val;
      fetchArticles(page.value, pageSize.value);
    };
 
    const handleCurrentChange = (val) => {
      page.value = val;
      fetchArticles(page.value, pageSize.value);
    };
 
    const editArticle = (id) => {
      // 跳转到编辑页面
    };
 
    const deleteArticle = async (id) => {
      await axios.delete(`/api/article/${id}`);
      fetchArticles(page.value, pageSize.value);
    };
 
    fetchArticles(page.value, pageSize.value);
 
    return { articles, total, page, pageSize, handleSizeChange, handleCurrentChange, editArticle, deleteArticle };
  },
};
</script>

在这个修改后的ArticleList.vue组件中,我们添加了<el-pagination>组件以实现分页功能。当用户更改分页大小或当前页时,分别触发handleSizeChange和handleCurrentChange方法。这两个方法都会调用fetchArticles方法,根据当前页和分页大小重新获取文章列表数据。

至此,您已经完成了基于Spring Boot和Vue3的文章列表与分页功能实现。在实际项目中,您可能需要根据需求进行更多的优化和扩展。希望本教程对您有所帮助!

到此这篇关于基于SpringBoot和Vue3的博客平台文章列表与分页功能实现的文章就介绍到这了,更多相关SpringBoot Vue3实现文章列表与分页内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

基于SpringBoot和Vue3的博客平台文章列表与分页功能实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

基于SpringBoot和Vue3的博客平台文章列表与分页功能实现

在前面的教程中,我们已经实现了基于SpringBoot和Vue3的发布、编辑、删除文章功能。本教程将继续引导您实现博客平台的文章列表与分页功能,需要的朋友可以参考阅读
2023-05-15

基于SpringBoot和Vue3的博客平台文章列表与分页功能怎么实现

今天小编给大家分享一下基于SpringBoot和Vue3的博客平台文章列表与分页功能怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
2023-07-06

基于SpringBoot和Vue3的博客平台文章详情与评论功能实现

在前面的教程中,我们已经实现了基于SpringBoot和Vue3的发布、编辑、删除文章功能以及文章列表与分页功能。本教程将引导您实现博客平台的文章详情与评论功能,需要的朋友可以参考一下
2023-05-15

基于SpringBoot和Vue3的博客平台文章详情与评论功能怎么实现

这篇文章主要介绍了基于SpringBoot和Vue3的博客平台文章详情与评论功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于SpringBoot和Vue3的博客平台文章详情与评论功能怎么实现文章都
2023-07-06

基于SpringBoot和Vue3的博客平台发布、编辑、删除文章功能实现

在上一个教程中,我们已经实现了基于Spring Boot和Vue3的用户注册与登录功能。本教程将继续引导您实现博客平台的发布、编辑、删除文章功能,需要的朋友参考一下
2023-05-15

基于SpringBoot和Vue3的博客平台发布、编辑、删除文章功能怎么实现

这篇“基于SpringBoot和Vue3的博客平台发布、编辑、删除文章功能怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
2023-07-06

基于SpringBoot和Vue3的博客平台的用户注册与登录功能实现

本教程将指导您如何使用Spring Boot和Vue3实现用户注册与登录功能。我们将使用Spring Boot作为后端框架,Vue3作为前端框架,同时使用MySQL作为数据库,感兴趣的朋友可以参考一下
2023-05-15

基于SpringBoot和Vue3的博客平台的用户注册与登录功能怎么实现

今天小编给大家分享一下基于SpringBoot和Vue3的博客平台的用户注册与登录功能怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一
2023-07-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录