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

yizhihongxing

下面我将详细讲解如何基于SpringBoot和Vue3搭建一个简单的博客平台,并实现发布、编辑和删除文章的功能。

准备工作

首先,我们需要搭建开发环境,并且安装必要的工具和依赖。具体的步骤如下:

  1. 安装Java SDK:前往 https://www.oracle.com/java/technologies/javase-downloads.html 下载并安装最新版本的Java SDK。

  2. 安装Node.js:前往 https://nodejs.org/en/download/ 下载并安装最新版本的Node.js。安装完成后,可通过命令行输入以下命令验证是否安装成功:

node -v
npm -v

  1. 安装Vue CLI:执行以下命令安装Vue CLI:

npm install -g @vue/cli

至此,环境搭建的工作已经完成。

后端实现

下面,我们来搭建后端的实现。采用SpringBoot框架来实现后端,具体的步骤如下:

  1. 创建一个SpringBoot项目,可采用Spring Initializr来快速构建项目。

  2. 在项目中添加JPA、MySQL、Web和Devtools等必要的依赖。示例 pom.xml 文件如下:

xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
</dependencies>

  1. 创建数据模型,在项目中进行数据库的配置,建表SQL示例如下:

```sql
CREATE DATABASE blog;

USE blog;

CREATE TABLE article (
id bigint(20) NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL,
content text NOT NULL,
create_time datetime NOT NULL,
update_time datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```

  1. 创建Repository和Service,并实现文章的CRUD操作。示例代码如下:

ArticleRepository.java

```java
package com.example.demo.repository;

import com.example.demo.entity.Article;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ArticleRepository extends JpaRepository {
}
```

ArticleService.java

```java
package com.example.demo.service;

import com.example.demo.entity.Article;
import com.example.demo.repository.ArticleRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ArticleService {

   @Autowired
   private ArticleRepository articleRepository;

   public List<Article> findAll() {
       return articleRepository.findAll();
   }

   public Article findById(Long id) {
       return articleRepository.findById(id).orElse(null);
   }

   public Article save(Article article) {
       return articleRepository.save(article);
   }

   public void deleteById(Long id) {
       articleRepository.deleteById(id);
   }

}
```

  1. 创建Controller,并实现相关的接口。示例代码如下:

ArticleController.java

```java
package com.example.demo.controller;

import com.example.demo.entity.Article;
import com.example.demo.service.ArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api")
public class ArticleController {

   @Autowired
   private ArticleService articleService;

   @GetMapping("/articles")
   public List<Article> getArticles() {
       return articleService.findAll();
   }

   @GetMapping("/articles/{id}")
   public Article getArticle(@PathVariable Long id) {
       return articleService.findById(id);
   }

   @PostMapping("/articles")
   public Article saveArticle(@RequestBody Article article) {
       return articleService.save(article);
   }

   @DeleteMapping("/articles/{id}")
   public void deleteArticle(@PathVariable Long id) {
       articleService.deleteById(id);
   }

}
```

至此,后端实现的工作已经完成。

前端实现

下面,我们将使用Vue3来实现前端的实现。具体的步骤如下:

  1. 创建Vue项目,执行以下命令创建Vue3项目:

vue create my-blog

  1. 创建组件和相关的页面。这里我们需要创建文章列表(ArticleList)、文章详情(ArticleDetail)、文章发布(ArticleCreate)和文章编辑(ArticleEdit)四个页面组件,并在App.vue组件中进行路由配置。示例代码如下:

App.vue

```vue

```

ArticleList.vue

```vue

```

ArticleDetail.vue

```vue

```

ArticleCreate.vue

```vue

```

ArticleEdit.vue

```vue

```

至此,前端实现的工作已经完成。

示例说明

下面,对实现的发布、编辑和删除文章的功能进行两条示例说明。

示例一

  1. 访问博客平台首页,并点击 发布文章 按钮跳转到发布文章页面。

  2. 在发布文章页面输入文章标题和内容,并点击 发布 按钮,即可发布文章。发布成功后将自动跳转到该文章的详情页面。

  3. 在文章详情页点击 编辑 按钮,跳转到编辑文章页面。

  4. 修改标题和内容,并点击 保存 按钮,即可更新文章。更新成功后将自动跳转到该文章的详情页面。

  5. 在文章详情页点击 删除 按钮,即可删除该文章。

示例二

  1. 访问博客平台首页,可看到已经发布的文章列表。

  2. 鼠标悬停于某篇文章列表上,即可看到 删除 按钮,点击 删除 按钮可删除该文章。

  3. 点击某篇文章的标题,跳转到该文章的详情页。

  4. 在文章详情页点击 编辑 按钮,跳转到编辑文章页面。

  5. 修改标题和内容,并点击 保存 按钮,即可更新文章。更新成功后将自动跳转到该文章的详情页面。

至此,我们已经完成了基于SpringBoot和Vue3的博客平台发布、编辑、删除文章功能的实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于SpringBoot和Vue3的博客平台发布、编辑、删除文章功能实现 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue 实现把表单form数据 转化成json格式的数据

    现在许多前端应用都需要从表单中获取用户数据以便后续处理。在Vue中,我们可以很方便地使用v-model指令来绑定表单元素的值,然后通过相关的事件来处理数据的提交,从而实现将表单数据转化为JSON格式的数据。 下面是实现的详细步骤: 步骤 在Vue组件中定义表单数据,并使用v-model指令来绑定表单元素的值,如下所示: <template> &l…

    Vue 2023年5月28日
    00
  • vue中用 async/await 来处理异步操作

    下面是关于 Vue 中如何使用 async/await 来处理异步操作的完整攻略,具体内容如下: 什么是 async/await async 和 await 是 ECMAScript 2017 中引入的新语法,是用于简化异步操作的一种方式,在 Vue 的开发中也经常用到。其中 async 是声明一个异步函数,await 则是用于等待一个异步函数返回结果。 V…

    Vue 2023年5月29日
    00
  • JS基于递归实现倒计时效果的方法

    当我们需要倒计时的效果时,JS基于递归实现倒计时就是一种很不错的方案了。接下来我将为大家讲解如何使用JS实现基于递归的倒计时效果。 步骤一:准备样式 通过CSS设置我们的倒计时样式,使页面表现更加美观。这里我们假设我们的倒计时样式类名为 countdown。 .countdown { font-size: 24px; color: #666; } 步骤二:编…

    Vue 2023年5月28日
    00
  • vue 组件通信的多种方式

    Vue 组件通信是一个非常重要的知识点,涉及到 Vue 组件之间消息传递和状态共享的问题。Vue 组件通信的多种方式包括以下几种: 使用 Props 和事件进行父子组件之间通信。 在 Vue.js 中,父子组件之间通信是通过 Props 和事件实现的。父组件通过 Props 向子组件传递数据,子组件通过事件向父组件发送消息。 以下是一个简单的示例: 父组件:…

    Vue 2023年5月27日
    00
  • 简单理解Vue条件渲染

    简单理解Vue条件渲染 Vue条件渲染是指根据指令或者表达式的值,控制元素的显示或隐藏。常见的条件渲染指令包括 v-if、v-else、v-else-if和v-show。 v-if 指令 使用 v-if 指令可以根据表达式的值来决定元素是否显示。如果表达式的值为 true,则元素会显示;反之则不显示。例如: <template> <div&…

    Vue 2023年5月27日
    00
  • 详解Vue 自定义hook 函数

    当我执行Vue.js的钩子函数时,我经常感到缺少自定义钩子函数的灵活性。在某些情况下,我需要创建一些在多个组件中共享的逻辑和状态,并将这些逻辑和状态隔离到自定义hook函数中。这就是使用自定义hook函数的场景,本文将为你详细讲解如何使用Vue自定义hook函数的完整攻略。 什么是Vue自定义hook函数? 我们都知道,在Vue.js中,我们可以编写组件和使…

    Vue 2023年5月28日
    00
  • 如何解决ElementPlus的el-table底白线问题

    解决Element Plus的el-table底白线问题可以通过修改CSS样式来完成。步骤如下: 第一步:查看el-table的底部样式 通过浏览器的开发者工具,可以查看到el-table的底部样式,它的CSS类名是.el-table__body-wrapper::after。默认情况下,该样式设置了一个底部白线,并且高度为1像素,颜色为#e4e7ed。 第…

    Vue 2023年5月28日
    00
  • Vue程序调试的方法

    下面是Vue程序调试的完整攻略,包含以下内容: 使用Chrome浏览器的开发者工具进行调试 使用Vue.js官方提供的调试工具Vue.js DevTools 在代码中使用console.log()进行调试 使用断点进行逐行调试 1. 使用Chrome浏览器的开发者工具进行调试 Chrome浏览器的开发者工具内置了强大的调试工具,可以方便地调试Vue程序。在使…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部