vue3 FormData()
时间: 2025-03-26 12:15:45 浏览: 23
### 如何在 Vue3 中使用 FormData
在 Vue3 应用程序中处理表单数据提交时,`FormData` 对象提供了一种方便的方法来构建键值对集合,这些键值对可以轻松发送到服务器。下面展示了如何创建并操作 `FormData` 实例。
#### 创建 FormData 实例并与组件交互
当不使用函数式组件而是类组件的情况下,推荐采用 ref 方法获取 DOM 节点而不是 Form.useForm()[^1]。对于基于文件上传的需求来说,这同样适用。为了更好地理解整个流程,这里给出一段简单的代码片段用于展示怎样利用 JavaScript 的原生 API 构建 `FormData` 并将其附加给 AJAX 请求:
```javascript
// 假设有一个 input 类型为 file 的 HTML 元素被挂载到了 this.$refs.fileInput 上
const fileInputElement = this.$refs.fileInput;
if (fileInputElement.files.length === 0) {
console.log('请选择要上传的文件');
} else {
const formData = new FormData();
// 将选中的文件加入到 formData 中
Array.from(fileInputElement.files).forEach((file, index) => {
formData.append(`files[${index}]`, file);
});
axios.post('/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(response => {
console.log('成功:', response.data);
}).catch(error => {
console.error('失败:', error);
});
}
```
这段代码首先检查是否有文件被选择;如果有,则遍历所有选定文件并将它们逐个追加至新的 `FormData` 实例里。最后通过 Axios 发送 POST 请求,并指定合适的 Content-Type 头部以便于服务端解析 multipart/form-data 编码的数据流[^2]。
阅读全文
相关推荐

















