利用state实现表单暂时保存,离开表单填写页面时表单不会清空

本文介绍了如何在Vue应用中利用Vuex的状态管理来实现在表单页面间切换时保持用户填写的数据。当从登记车辆信息表单跳转到子页面选择车型后,能够确保返回时原始数据依然存在。主要策略包括:检测输入项是否为空来决定是否保存数据到state,以及在主页中根据state内容重新渲染表单和车型信息。
摘要由CSDN通过智能技术生成

需求:登记车辆信息表单中有个选项需要跳转到子页面选择车型,返回时上次填写的数据应该仍然存在
思路:
1、跳转页面时,检测input至少一个不为空,则保存登记信息到state,若input全为空,则不执行保存操作。
2、跳转到子页,子页选择了车型,将车型信息保存到state中,跳回主页。若是通过返回键回到主页的则不执行保存操作。
3、主页mounted函数中,检测state中登记信息是否不为空,不为空则渲染到页面上。state中车型选择信息是否为空,不为空则渲染车型信息展示div以及车型信息。

为什么用state,因为state每次刷新页面就会被清空,不会长期存在。

提交时,表单验证:https://blog.csdn.net/qq_41836598/article/details/97900783

主页

在这里插入图片描述
登记车辆(‘/reg-vehicles’)的vue页面

 data () {
    
  return {
   
    real_name: '', // 真实姓名
    phone: '', // 手机号码
    owner_name: '', // 车辆所有人号码
    licence_plate: '', // 驾驶证信息
    vehicle_type: '', // 车型详细信息
    type_active: false // 是否显示渲染车型信息的div
  }
}
methods: {
   
    goTo () {
   
      // 如果页面上登记信息不为空——填了,保存到state,目的——从“选车型页面”跳转回来,表单信息不空,周期为此次打开APP,所以用state就好,不需要localStorage等长期存储
      if (this.real_name || this.phone || this.owner_name || this.licence_plate) {
   
        // dispatch,将表单数据存储到state中  
        this.$store.dispatch('registered_vehicles', [this.real_name, this.phone, this.owner_name, this.licence_plate])
      }
      this.$router.push('/vehicle-type')
    }
}

computed和mounted:

computed: {
   
  state_reg () {
    ret
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值