Data:
 

{          key: 5,          prop: "colorBook",          label: "高模模型文件",          render: (scope) => {            const { $index } = scope;            const thisProp = `3dModel_sil3dHighModel_${$index}`;            let ele = [];            if (!this.$data[thisProp]) {              this.$data[thisProp] = [];            }            console.log(this);            ele = (              <ElFormItem                prop={thisProp}                label-width={0}                style={{ marginBottom: 0 }}              >                <FilesUpload                  prop={thisProp}                  limit={3}                  uploadFunction={this.uploadFunction}                  removeFunction={this.removeFunction}                  fileList={this.$data[thisProp]}                />              </ElFormItem>            );            return ele;          },        },

Methods:
  

  async uploadFunction(file, prop) {      let type = "";      switch (true) {        case /sil3dHighModel/.test(prop):          type = "3dHighModel";          break;        default:          break;      }      const formData = new FormData();      formData.append("file", file);      const res = await uploadPatternImage(formData, { type });      let result = false;      if (res.code === 200) {        if (!this.$data[prop]) {          this.$data[prop] = [];        }        this.$data[prop].push({ name: res.data, url: res.data });        console.log(this);        this.patternInfo[prop] = this.$data[prop];        result = true;      }      return result;    },

如上的代码,第一段是监听在data中的一段渲染表格列的代码,而后因为表格有个用户点击自增行的性能,所以fileList的key可能有有数多个,名字也不能确定,须要通过逻辑去减少。
后面尝试了一种写法this[prop],发现尽管this.[prop]是有变动的,但并不能触发页面的update。初步断定this外面属于data的字段是VUE深拷贝的正本,由data的变动在proxy的set外面驱动。

解决方案:

通过间接设置在this.$data外面,视乎绕过了VUEdata()的拷贝逻辑,尽管没有在this中监听,然而能从this.$data中取到,并且失常触发页面update更新。