computed与watch的爱恨情仇

0 缘起

今天做一个标签切换功能的时候,测试跟我说这玩意切换后没了。我一皱眉,怎么可能,我自己也测试了,刷新后还在啊。然后她跟我说,她是直接点了下拉框切换......

行吧,不就是BUG嘛嗯修就完事了,于是一上午过去了......

1 你说让我爱你不容易

这个companyName原本有两种途径获取,第一种是点击修改,路由query丢过来,boxId有值。第二种是点击新增,根据下拉框来得到,boxId为-1。现在么,就是要根据boxId,来判断我拿哪里的值。

boxId是从VueX里面取到的,所以我也想到把companyName扔进VueX里面,一通操作OK了。

但是!欸,BUG总是如此多情,即使从VueX里面取了这个正确的companyName,我显示的还是空的(实际上的Undefined)。好,我来看看是computed的getter里头出了什么问题,我一看,差点被气的魂出窍,每次都拿第一位的undefined,怪不得不显示呢。更改后,更666的情况冒出来了,computed出来的companyName确实对的,但是显示不出来,欸,v-model又来折腾了!

2 擦肩而过,谁还记得

速度搜索了一下,果然,v-model和computed一起用会用某种奇怪的效应,就像你爱的那个人不爱你一样,既真实又残酷。所以,我最后还是采用最原始最朴实无华的使用方法,v-model+watch,虽然简单,但很有效。爱你的那个人,可能你不爱她,但她真的很爱你。

流程大概是

cN进来,改值->watch到了,存vueX,改变其他的对应值。

刷新界面,有没有boxId,有拿vueX里的cN,没有就空着。

posted @ 2021-11-29 14:16  乐盘游  阅读(23)  评论(0编辑  收藏  举报