描述:初始化表单中当然是没有数据的,但是在提交后,再次点击显示dialog就应该回显刚才填写的数据到表单的框中。

做法:

  • 第一种,就是我目前用的(不推荐,对服务器压力大),点击显示dialog的同时,发送请求到后端获取数据,然后vuex中commit,state变动,视图渲染。
这样做肯定是可以回显成功的,但是缺点是:每次点击都要向后台请求,服务器压力增大。
  • 第二种,应该是普遍用法吧:初始化先去判断localStorage中有没有数据,如果有就拿localStorage中的,没有就发送请求,发送完通过vuex将数据保存到localStorage中,提交的流程是:初始化无数据,提交并且将数据也存到localStorage中,所以整体流程就是:
用户初次提交表单-->数据存入数据库,同时存到本地--->再次打开表单,判断localStorage中有无数据-->...

问题:为什么要在打开表单的时候做数据判断,这时候不是已经提交到数据库并且保存到本地(也就是本地肯定是在提交后有数据,何须再判断)
答:1.localStorage中的数据是可以手动删除的,所以被删后,数据没了,这时候表单中数据就不会回显。
   2.在本机的情况下,提交后本地的确已经有了数据,但是换另外一台电脑,这时候在远程数据库中有数据,但是那台电脑本地可没有,所以要做个判断,做个请求拿数据库中的数据

显然第二种方式更好,但是...今天下午写了好多次,总是有各种问题,主要是vuex跟localStorage一起用,我表单中的数据是拿vuex的state中,也就是必须每次要变动state才能渲染视图,还是有点问题,今晚脑子不够用了。。。先溜了

2020年3月15日22:49:11


爬。