中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 基于SpringBoot和Vue3的博客平臺發布、編輯、刪除文章功能怎么實現

基于SpringBoot和Vue3的博客平臺發布、編輯、刪除文章功能怎么實現

發布時間:2023-04-11 16:40:29 來源:億速云 閱讀:279 作者:iii 欄目:開發技術

這篇“基于SpringBoot和Vue3的博客平臺發布、編輯、刪除文章功能怎么實現”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“基于SpringBoot和Vue3的博客平臺發布、編輯、刪除文章功能怎么實現”文章吧。

1. 后端Spring Boot實現

我們將使用Spring Boot作為后端框架,并使用MySQL作為數據庫。

1.1 創建Article實體類

首先,在com.example.demo.entity包下創建一個名為Article.java的新類,并添加以下內容:

public class Article {
    private Integer id;
    private String title;
    private String content;
    private Integer authorId;
 
    // Getter and Setter methods
}

1.2 創建ArticleMapper接口

com.example.demo.mapper包下創建一個名為ArticleMapper.java的新接口,并添加以下內容:

@Mapper
public interface ArticleMapper {
    List<Article> findAll();
    Article findById(Integer id);
    void insert(Article article);
    void update(Article article);
    void delete(Integer id);
}

com.example.demo.service.impl包下創建一個名為ArticleServiceImpl.java的新類,并添加以下內容:

@Service
public class ArticleServiceImpl implements ArticleService {
    @Autowired
    private ArticleMapper articleMapper;
 
    @Override
    public List<Article> findAll() {
        return articleMapper.findAll();
    }
 
    @Override
    public Article findById(Integer id) {
        return articleMapper.findById(id);
    }
 
    @Override
    public void create(Article article) {
        articleMapper.insert(article);
    }
 
    @Override
    public void update(Article article) {
        articleMapper.update(article);
    }
 
    @Override
    public void delete(Integer id) {
        articleMapper.delete(id);
    }
}

1.3創建ArticleController類

com.example.demo.controller包下創建一個名為ArticleController.java的新類,并添加以下內容:

@RestController
@RequestMapping("/api/article")
public class ArticleController {
    @Autowired
    private ArticleService articleService;
 
    @GetMapping
    public List<Article> list() {
        return articleService.findAll();
    }
 
    @GetMapping("/{id}")
    public Article detail(@PathVariable Integer id) {
        return articleService.findById(id);
    }
 
    @PostMapping
    public Result create(@RequestBody Article article) {
        articleService.create(article);
        return Result.success("文章發布成功");
    }
 
    @PutMapping("/{id}")
    public Result update(@PathVariable Integer id, @RequestBody Article article) {
        article.setId(id);
        articleService.update(article);
        return Result.success("文章更新成功");
    }
 
    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Integer id) {
        articleService.delete(id);
        return Result.success("文章刪除成功");
    }
}

至此,我們已經完成了后端的發布、編輯、刪除文章功能。

2. 前端Vue3實現

2.1 創建文章列表頁面組件

src/views目錄下創建一個名為ArticleList.vue的新組件,并添加以下內容:

<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>
  </div>
</template>
 
<script>
import { ref } from "vue";
import axios from "axios";
 
export default {
  setup() {
    const articles = ref([]);
 
    const fetchArticles = async () => {
      const response = await axios.get("/api/article");
      articles.value = response.data;
    };
 
    const editArticle = (id) => {
      // 跳轉到編輯頁面
    };
 
    const deleteArticle = async (id) => {
      await axios.delete(`/api/article/${id}`);
      fetchArticles();
    };
 
    fetchArticles();
 
    return { articles, editArticle, deleteArticle };
  },
};
</script>

2.2 創建文章發布頁面組件

src/views目錄下創建一個名為CreateArticle.vue的新組件,并添加以下內容:

<template>
  <el-form ref="form" :model="form" label-width="80px">
    <el-form-item label="標題" prop="title">
      <el-input v-model="form.title"></el-input>
    </el-form-item>
    <el-form-item label="內容" prop="content">
      <el-input type="textarea" v-model="form.content"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submitForm('form')">發布文章</el-button>
    </el-form-item>
  </el-form>
</template>
 
<script>
import { reactive } from "vue";
import axios from "axios";
 
export default {
  setup() {
    const form = reactive({ title: "", content: "" });
 
    const submitForm = async () => {
      try {
        await axios.post("/api/article", form);
        alert("文章發布成功");
      } catch (error) {
        alert("文章發布失敗");
      }
    };
 
    return { form, submitForm };
  },
};
</script>

2.3 創建文章編輯頁面組件

src/views目錄下創建一個名為EditArticle.vue的新組件,并添加以下內容:

<template>
  <el-form ref="form" :model="form" label-width="80px">
    <el-form-item label="標題" prop="title">
      <el-input v-model="form.title"></el-input>
    </el-form-item>
    <el-form-item label="內容" prop="content">
      <el-input type="textarea" v-model="form.content"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submitForm">更新文章</el-button>
    </el-form-item>
  </el-form>
</template>
 
<script>
import { ref, reactive, onMounted } from "vue";
import axios from "axios";
 
export default {
  props: {
    id: {
      type: Number,
      required: true,
    },
  },
  setup(props) {
    const form = reactive({ title: "", content: "" });
 
    const fetchArticle = async () => {
      const response = await axios.get(`/api/article/${props.id}`);
      form.title = response.data.title;
      form.content = response.data.content;
    };
 
    const submitForm = async () => {
      try {
        await axios.put(`/api/article/${props.id}`, form);
        alert("文章更新成功");
      } catch (error) {
        alert("文章更新失敗");
      }
    };
 
    onMounted(fetchArticle);
 
    return { form, submitForm };
  },
};
</script>

這段代碼定義了一個名為EditArticle.vue的新組件,該組件需要一個名為id的屬性。組件加載時,會調用fetchArticle函數獲取文章信息并填充到表單中。點擊"更新文章"按鈕時,會調用submitForm函數,將表單數據發送到后端以更新文章。

以上就是關于“基于SpringBoot和Vue3的博客平臺發布、編輯、刪除文章功能怎么實現”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新河县| 班玛县| 鱼台县| 安义县| 四会市| 太仓市| 福贡县| 胶南市| 清徐县| 大渡口区| 佛学| 射洪县| 白水县| 抚远县| 尉氏县| 澄江县| 庆城县| 精河县| 大名县| 那坡县| 南充市| 株洲县| 东阿县| 祁东县| 都昌县| 乌海市| 兴化市| 岳西县| 开化县| 墨江| 舞钢市| 五大连池市| 晋江市| 上犹县| 阿克陶县| 长武县| 南城县| 九龙城区| 陆良县| 鄂尔多斯市| 阳山县|