当前位置:首页 > VUE

vue实现发帖

2026-01-07 23:31:39VUE

使用 Vue 实现发帖功能

前端实现

创建发帖表单组件,包含标题和内容输入框,以及提交按钮。使用 v-model 绑定表单数据。

<template>
  <div>
    <input v-model="post.title" placeholder="标题" />
    <textarea v-model="post.content" placeholder="内容"></textarea>
    <button @click="submitPost">发布</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      post: {
        title: '',
        content: ''
      }
    }
  },
  methods: {
    submitPost() {
      this.$emit('submit', this.post)
      this.post.title = ''
      this.post.content = ''
    }
  }
}
</script>

后端 API 调用

在父组件中处理发帖逻辑,调用 API 发送数据到后端。

vue实现发帖

methods: {
  async handleSubmit(post) {
    try {
      const response = await axios.post('/api/posts', post)
      console.log('发帖成功', response.data)
    } catch (error) {
      console.error('发帖失败', error)
    }
  }
}

表单验证

添加简单的表单验证,确保标题和内容不为空。

vue实现发帖

methods: {
  submitPost() {
    if (!this.post.title.trim() || !this.post.content.trim()) {
      alert('标题和内容不能为空')
      return
    }
    this.$emit('submit', this.post)
  }
}

状态管理

使用 Vuex 管理帖子列表状态,在发帖成功后更新全局状态。

// store.js
mutations: {
  ADD_POST(state, post) {
    state.posts.unshift(post)
  }
}

// 组件中
methods: {
  async handleSubmit(post) {
    try {
      const response = await axios.post('/api/posts', post)
      this.$store.commit('ADD_POST', response.data)
    } catch (error) {
      console.error(error)
    }
  }
}

路由跳转

发帖成功后跳转到帖子列表页。

methods: {
  async handleSubmit(post) {
    try {
      await axios.post('/api/posts', post)
      this.$router.push('/posts')
    } catch (error) {
      console.error(error)
    }
  }
}

标签: 发帖vue
分享给朋友:

相关文章

vue实现表格多行修改

vue实现表格多行修改

实现多行编辑表格 在Vue中实现表格的多行编辑功能,可以通过以下方法完成。这里以Element UI的表格组件为例,但思路适用于其他UI库或原生实现。 数据准备 定义表格数据和编辑状态管理变量:…

vue实现slider

vue实现slider

Vue 实现 Slider 组件 使用 Vue 实现 Slider 组件可以通过原生开发或借助第三方库。以下是两种常见方法: 原生实现 Slider 创建一个基础的 Slider 组件,通过 v-m…

vue代理实现

vue代理实现

Vue 代理实现方法 在 Vue 项目中,配置代理可以解决开发环境下的跨域问题,通常通过修改 vue.config.js 文件实现。以下是几种常见的代理配置方式: 基础代理配置 在 vue.conf…

vue实现dialog

vue实现dialog

Vue 实现 Dialog 的方法 使用 Vue 原生组件实现 Vue 可以通过组件化的方式实现 Dialog,以下是一个简单的实现示例: <template> <div>…

用vue实现echarts

用vue实现echarts

使用 Vue 实现 ECharts 安装依赖 在 Vue 项目中安装 ECharts 和 Vue-ECharts(官方推荐的 Vue 封装库): npm install echarts vue-ec…

vue实现开关灯

vue实现开关灯

Vue实现开关灯效果 使用Vue实现开关灯效果可以通过数据绑定和条件渲染完成。以下是具体实现方式: 创建Vue实例并定义数据 new Vue({ el: '#app', data:…