请你扮演一个前端开发工程师,解决vue中提交表单向数组中添加对象后跳转页面每次添加都会被替换
时间: 2024-05-16 13:14:18 浏览: 104
vue从一个页面跳转到另一个页面并携带参数的解决方法
首先需要理解表单提交后跳转页面会导致页面刷新,因此需要采用一些方法来保存表单数据并避免被替换。
一种解决方案是将提交的表单数据保存到浏览器的本地存储中,可以使用 localStorage 或 sessionStorage。每次提交表单时,先从本地存储中读取已有的表单数据,然后将新的表单数据添加到数组中,最后再将整个数组保存回本地存储中。
以下是一个示例代码:
```javascript
// 从本地存储中读取已有的表单数据
let formData = JSON.parse(localStorage.getItem('formData')) || [];
// 提交表单时添加新的表单数据
function handleSubmit() {
let data = {
name: this.name,
age: this.age,
// 其他表单数据
};
formData.push(data);
// 保存表单数据到本地存储
localStorage.setItem('formData', JSON.stringify(formData));
// 跳转到其他页面
// ...
}
```
另一种解决方案是使用路由参数传递表单数据,每次添加表单数据时将其作为参数传递给下一个页面,这样刷新页面时也不会丢失数据。但是这种方法需要注意参数长度的限制和安全性问题。
```javascript
// 提交表单时跳转到其他页面并将表单数据作为参数传递
function handleSubmit() {
let data = {
name: this.name,
age: this.age,
// 其他表单数据
};
// 将表单数据作为参数传递并跳转到其他页面
this.$router.push({
path: '/other-page',
query: {
formData: JSON.stringify(data)
}
});
}
```
在其他页面中可以通过 `$route.query.formData` 来获取表单数据。
阅读全文