修改公司大神们的BUG发现的一枚问题:
本来在data里已经设置了绑定项:

formItem: {
  aInput: '',
  bInput: '',
  cInput: '',
  dInput: '',
},

然而在获取接口数据后,无论怎么给formItem.bInput赋值都为空值。

<testPlugin v-model="formItem.bInput"></testPlugin>
<!-- formItem.bInput始终为空.. -->
<!-- 然而下面的方法里明明定义了 this.formItem.bInput = '神奇的数据B'; -->

在检查过插件内部的prop和watch都没问题的情况后,终于发现原来从接口里获取过来的数据本身就没有bInput这个对应属性

// response.data.data接口返回值
formItem: {
  aInput: '神奇的数据A',
  cInput: '神奇的数据C',
},

结果就导致本来页面已经绑定上了formItem.bInput,结果由于从接口处返回的数据里没有bInput这个属性,而大神们还为了简单直接将接口返回过来的对象直接赋值给了formItem,因此导致formItem.bInput失去了绑定,无论是后期怎么给它赋值也无法绑定成功。

// 神奇的代码
this.formItem = response.data.data

解决方法

this.formItem.bInput = '神奇的数据B';
// 强制重新进行双向绑定
this.$forceUpdate()