vue实现内容发布
Vue 实现内容发布功能
数据绑定与表单处理
使用 v-model 实现表单数据的双向绑定,确保用户输入内容能实时同步到 Vue 实例的 data 中。例如:
data() {
return {
postContent: '',
title: ''
}
}
模板部分:
<input v-model="title" placeholder="标题">
<textarea v-model="postContent" placeholder="内容"></textarea>
表单验证
通过计算属性或第三方库(如 VeeValidate)验证输入内容是否合法。示例:
computed: {
isFormValid() {
return this.title.length > 0 && this.postContent.length > 10
}
}
提交逻辑
绑定提交按钮事件,使用 axios 或 fetch 发送数据到后端 API:
methods: {
submitPost() {
if (!this.isFormValid) return
axios.post('/api/posts', {
title: this.title,
content: this.postContent
}).then(response => {
alert('发布成功')
})
}
}
富文本编辑器集成
需要富文本功能时,可集成 Quill 或 TinyMCE。以 vue-quill-editor 为例:
import VueQuillEditor from 'vue-quill-editor'
Vue.use(VueQuillEditor)
模板使用:
<quill-editor v-model="postContent"></quill-editor>
状态反馈
通过 v-if 或过渡效果显示发布状态:
<div v-if="isSubmitting" class="loading">发布中...</div>
<div v-if="isSuccess" class="success">发布成功</div>
路由跳转
发布成功后跳转到内容详情页:
this.$router.push(`/post/${response.data.id}`)
本地存储(可选)
使用 localStorage 临时保存草稿:
watch: {
postContent(newVal) {
localStorage.setItem('draft', newVal)
}
}






