FormData常用方法和在vue中的使用教程

一 : 简介

FormData 接口提供了一种表示表单数据的键值对 key/value 的构造方式,并且可以轻松的将数据通过前端Ajax 方法发送出去,本接口和此方法都相当简单直接。如果送出时的编码类型被设为 “multipart/form-data”,它会使用和表单一样的格式。
FormData的主要用途有两个:

1、将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率。
2、异步上传文件

二 : 如何使用

(1) 通过FormData()构造函数来创建一个空的FormData对象
//通过new 一个FormData()构造函数来创建一个空对象
let formData = new FormData()
(2) 常用方法
  • FormData.append()
    向 FormData 中添加新的属性值,FormData 对应的属性值存在也不会覆盖原值,而是新增一个值,如果属性不存在则新增一项属性值。
formData.append("name", '小明');
formData.append("meetingRoomId", this.form.meetingRoomId);
  • FormData.delete()
    从 FormData 对象里面删除一个键值对。
formData.delete("name");
formData.delete("meetingRoomId");
  • FormData.get()
    返回在 FormData 对象中与给定键关联的第一个值。
formData.get('name')
console.log(formData.get('name')); //'小明'
  • FormData.getAll();
    getAll()方法会返回该 FormData 对象指定 key 的所有值的数组。
formData.append('username', 'Chris');
formData.append('username', 'Bob');
formData.getAll('username'); // ["Chris", "Bob"]
  • FormData.has()
    返回一个布尔值表明 FormData 对象是否包含某些键。
formData.append('username', 'Chris');
formData.has('username'); //  true
  • FormData.set()
    给 FormData 设置属性值,如果FormData 对应的属性值存在则覆盖原值,否则新增一项属性值。
formData.set('username', 'Chris');
//当第二个参数传递的是一个blob对象(Blob)或者file对象(File),
//filename参数就代表传给服务端的文件名。
formData.set('userpic', myFileInput.files[0], 'chris.jpg');
三 : 在vue中使用FormData格式进行axios请求
var formData = new FormData();
formData.append("name", this.form.name);
formData.append("meetingRoomId", this.form.meetingRoomId);
formData.append("startTime", this.form.startTime);
formData.append("endTime", this.form.endTime);
formData.append("meetingTypeId", this.form.meetingTypeId);
formData.append("applyAccountId", this.form.applyAccountId);
formData.append("masterAccountId", this.form.masterAccountId);
formData.append("attendAccountIds", this.form.attendAccountIds);
formData.append("description", this.form.description);
formData.append("status", this.form.status); 
this.form.files.forEach(el => {
     formData.append("files", el); // 这里是支持多文件上传的,FormData对象可以支持同样的key值在对象中创建
  });
this.$post2("base/meeting", formData).then(res => { //进行axios请求,在这里我封装的Content-Type: multipart/form-data;
	console.log(res);
})

注 : 根据业务场景,文件是和参数一块上传到服务器的,没有进行分离,这里的文件File参数可以用原生input组件上传获取,也可以用自己的UI框架在Upload组件的beforeUpload(上传文件前的钩子)进行获取到File参数信息。(有问题欢迎评论私信)

Vue.js中,如果你想打印FormData对象的内容,可以按照以下步骤进行: 1. **创建FormData对象**:首先,你需要创建一个FormData对象,并添加一些数据。 2. **打印FormData对象**:由于FormData对象是一个特殊的对象,直接打印它不会显示其内容。你需要使用`for...of`循环来遍历它的键值对。 以下是一个示例代码: ```javascript <template> <div> <form @submit.prevent="handleSubmit"> <input type="text" v-model="formData.username" /> <input type="password" v-model="formData.password" /> <button type="submit">提交</button> </form> </div> </template> <script> export default { data() { return { formData: { username: '', password: '' } }; }, methods: { handleSubmit() { const form = new FormData(); form.append('username', this.formData.username); form.append('password', this.formData.password); // 打印FormData对象的内容 for (let [key, value] of form.entries()) { console.log(`${key}: ${value}`); } // 你可以在这里继续处理表单数据,比如发送到服务器 } } }; </script> ``` 在这个示例中: 1. **模板部分**:我们创建了一个简单的表单,包含两个输入框一个提交按钮。 2. **脚本部分**: - **数据**:我们定义了一个`formData`对象来存储表单数据。 - **方法**:`handleSubmit`方法在表单提交时被调用。它创建了一个`FormData`对象,并将表单数据追加到其中。然后,使用`for...of`循环遍历`FormData`对象的键值对,并打印到控制台。 这样,你就可以在控制台中看到FormData对象的内容了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值