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

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

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

мой 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>

my JS

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

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

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


person Lin Shen    schedule 27.07.2016    source источник


Ответы (1)


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

person gurghet    schedule 27.07.2016
comment
Спасибо! Я обнаружил то же самое только сейчас. И я решил свою проблему, изменив зависимости, та же идея, что описана в вашем ответе; ) - person Lin Shen; 27.07.2016