The results of the global component of vue appear unstable in the parent component

problem description

the page will display normally when you enter from the navigation bar for the first time, but it will not display properly from the second time

the environmental background of the problems and what methods you have tried

related codes

/ / Please paste the code text below (do not replace the code with pictures)
/ / this is the part of
< el-col: span= "24"

        style="white-space: pre; color: -sharp474747;font-size: 16px; font-weight: 400; margin-left: 20px;margin-top: 10px;margin-bottom: 10px"
        v-show="collapsed">
  <span style="color: -sharp8b8b8b" :span="4" :id=name>:</span>

</el-col>

/ / listening
props: ["filters"," name"],

watch: {
  filters: {
    handler(newValue, oldValue) {
      console.log("+newValue===");
      console.log(newValue);
      this.valueToDiv();
    },
    deep: true
  },
  name(curVal,oldVal){
    console.log(curVal);
  }

},

/ / method
valueToDiv () {

    /*1.
    2.value
    3."+"*/
    let titles = [];
    let values = [];
    for (let i = 0; i < this.filters.length; iPP) {
      let label = this.filters[i].label;
      if (this.filters[i].value.length != 0 && this.filters[i].hidden !="true") {
        if (this.filters[i].type === "select") {
          //
          let value = this.filters[i].value;
          for (let k = 0; k < this.filters[i].options.length; kPP) {
            if (this.filters[i].options[k].value === value) {
              let a = this.filters[i].options[k].label;
              let b = label + ":" + a;
              titles.push(label);
              values.push(a);
            }
          }
        }
        else if (this.filters[i].type === "regionTree") {
          //
          let value = this.filters[i].value;
          if (value.length == 1) {
            for (let m = 0; m < this.filters[i].options.length; mPP) {
              if (this.filters[i].options[m].value == value) {
                let a = this.filters[i].options[m].label;
                let b = label + ":" + a;
                titles.push(label);
                values.push(a);
              }
            }
          } else if (value.length == 2) {
            let val = value[0];
            //
            for (let m = 0; m < this.filters[i].options.length; mPP) {
              if (this.filters[i].options[m].value == val) {
                let a = this.filters[i].options[m].label;
                let b = label + ":" + a + " / ";
                for (let k = 0; k < this.filters[i].options[m].children.length; kPP) {
                  for (let n = 1; n < value.length; nPP) {
                    if (this.filters[i].options[m].children[k].value == value[n]) {
                      a +=" / "+ this.filters[i].options[m].children[k].label;
                      b += this.filters[i].options[m].children[k].label;
                      titles.push(label);
                      values.push(a);
                    }
                  }
                }
              }
            }
          } else {
            let val = value[0];
            let val2 = value[1];
            let val3 = value[2];
            //
            for (let m = 0; m < this.filters[i].options.length; mPP) {
              if (this.filters[i].options[m].value == val) {
                let a = this.filters[i].options[m].label;
                let b = label + ":" + a + " / ";
                for (let k = 0; k < this.filters[i].options[m].children.length; kPP) {
                  if (this.filters[i].options[m].children[k].value == val2) {
                    b += this.filters[i].options[m].children[k].label + " / ";
                    for (let n = 0; n < this.filters[i].options[m].children[k].children.length; nPP) {
                      if (this.filters[i].options[m].children[k].children[n].value == val3) {
                        b += this.filters[i].options[m].children[k].children[n].label;
                        a +=" / "+ this.filters[i].options[m].children[k].label + " / "+this.filters[i].options[m].children[k].children[n].label;
                        titles.push(label);
                        values.push(a);
                      }
                    }
                  }
                }
              }
            }
          }
        }
        else if(this.filters[i].type === "datetime"){
          let a = this.filters[i].label + ":";
          let b = this.filters[i].value;
          titles.push(this.filters[i].label);
          values.push(this.filters[i].value);}
        else {
          let a = this.filters[i].label + ":";
          let b = this.filters[i].value;
          titles.push(this.filters[i].label);
          values.push(this.filters[i].value);
        }

      }
    }

   let elementCol =document.getElementById(this.name);
    elementCol.textContent=":";

    for(let k = 0; k < values.length; kPP){
      let link = document.createElement("span");
      link.textContent = titles[k] + ":";
      elementCol.appendChild(link);
      let link1 = document.createElement("span");
      link1.textContent = values[k] + "    ";
      link1.style.color = "-sharp3a8ee6";
      link1.style.whiteSpace = "pre";
      elementCol.appendChild(link1);
    }
    console.log("elementCol.textContent ===>>"+elementCol.textContent);

  },
  

/ / call

in mounted
   mounted() {
  this.valueToDiv();
},

what result do you expect? What is the error message actually seen?

normal result
clipboard.png

clipboard.png

clipboard.png
A newcomer. I hope some great god will give me some advice.

Aug.12,2021

 filters: {
    handler(newValue, oldValue) {
      console.log("+newValue===");
      console.log(newValue);
      this.$nextTick(() => {
          //  vue render  dom.
          this.valueToDiv()
      });
    },
    deep: true
  },

PS: you already use vue, so write ui in a data-oriented way instead of directly manipulating dom.

Menu