基于SpringBoot和Vue3的博客平台文章列表与分页功能怎么实现
1. 后端Spring Boot实现
我们将使用Spring Boot作为后端框架,并使用MySQL作为数据库。
1.1 修改ArticleMapper接口
为了支持分页功能,我们需要修改ArticleMapper.java文件,添加一个新方法findPage,同时更新findAll方法为findPage方法。
@Mapper
public interface ArticleMapper {
List 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 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 findPage(int offset, int pageSize) {
return articleMapper.findPage(offset, pageSize);
}
// ...其他方法不变
} 1.3 修改ArticleController类
在ArticleController.java文件中,修改list方法,接收page和pageSize参数,并调用findPage和count方法获取分页数据。
@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 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方法,接收page和pageSize参数,并将数据显示在表格中。同时,添加组件实现分页。
编辑 删除
在这个修改后的ArticleList.vue组件中,我们添加了