Когда массив v-for, созданный вычисляемой опцией, изменяется, DOM не изменяется соответственно

Недавно я столкнулся с проблемой, вызванной вычисляемой опцией vuejs.

Во-первых, я использую v-for для цикла для массива (soloColImgs), который создается с помощью параметра computed.

мой HTML

  <div class="show-box" v-for="item in soloColImgs" track-by="$index">
                <img v-bind:src="item.imgUrl"/>
                <a v-bind:href="item.itemUrl" target="_blank"></a>
  </div>

мой JS

   //...
   computed: {
   soloColImgs :function(){
           //....
    },

   methods: {
      change:function(){
              this.soloColImgs.pop();
           }
      }

Во-вторых, я изменяю массив (soloColImgs) с помощью pop() или же splice() и т.д... Когда я смотрю в консоль, массив может измениться соответственно, однако DOM не меняется вообще. Было бы здорово, если бы кто-нибудь мог мне помочь в этом.

1 ответ

Решение

Суть вычисляемого свойства заключается в том, что оно определяется исключительно функцией, которая его определяет. Вы не можете изменить это напрямую, вы должны изменить это, действуя на зависимости. Зависимости - это свойства, которые используются для вычисления возвращаемого значения.

Другие вопросы по тегам