Когда массив 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 ответ
Решение
Суть вычисляемого свойства заключается в том, что оно определяется исключительно функцией, которая его определяет. Вы не можете изменить это напрямую, вы должны изменить это, действуя на зависимости. Зависимости - это свойства, которые используются для вычисления возвращаемого значения.