当前位置:首页 > 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 发送数据到后端。

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

表单验证

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

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双向实现

Vue 双向数据绑定的实现原理 Vue 的双向数据绑定主要通过 v-model 指令实现,其核心是结合了数据劫持(Object.defineProperty 或 Proxy)和发布-订阅模式。 数…

vue实现前端分离

vue实现前端分离

Vue 实现前后端分离 前后端分离是一种架构模式,前端负责页面渲染和交互逻辑,后端提供数据接口。Vue.js 作为前端框架,非常适合实现前后端分离的开发模式。 核心实现步骤 创建 Vue 项目 使…

vue实现屏幕共享

vue实现屏幕共享

Vue 实现屏幕共享的方法 使用 WebRTC 和 getDisplayMedia API 通过 navigator.mediaDevices.getDisplayMedia 捕获屏幕内容,结合 We…

vue实现选择季度

vue实现选择季度

Vue 实现选择季度的几种方法 使用下拉选择框(Select) 在 Vue 中可以通过 v-model 绑定一个下拉选择框来实现季度选择。数据可以预先定义为一个包含季度选项的数组。 <…

前端多线程实现vue

前端多线程实现vue

前端多线程与Vue的结合 在Vue中实现多线程通常通过Web Worker技术完成。Web Worker允许在后台线程中运行脚本,避免阻塞主线程,适合处理计算密集型任务。 使用Web Worker…

vue实现横向导航

vue实现横向导航

vue实现横向导航的方法 使用Flex布局实现横向导航 在Vue中可以通过Flex布局快速实现横向导航。创建一个组件,使用display: flex和flex-direction: row属性使导航项…