您好,欢迎访问一九零五行业门户网

基于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的新接口,并添加以下内容:
@mapperpublic 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的新类,并添加以下内容:
@servicepublic 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的博客平台发布、编辑、删除文章功能怎么实现的详细内容。
其它类似信息

推荐信息