通过索引值修改数组中的元素不是响应式的(vue)
嗯,模型做好了要放到平台上,开始嗑前端vue:看王元红老师的视频,第一次作业要求实现列表点击变色。代码如下
<html lang = "en">
<head>
<meta charset="utf-8">
<title>Title</title>
<script src = "vue.js"></script>
<style>
.active{
color: red
}
</style>
</head>
<body>
<div id="app">
<ul>
<li v-for="(m, index) in movies" @click="changeColor(index)" :class="{active: isActive[index]}">{{m}}</li>
</ul>
</div>
<script>
const app = new Vue({
el: "#app",
data: {
movies: ['海王', '海尔兄弟', '火影忍者', '进击的巨人'],
isActive: [true, false, false, false]
},
methods: {
changeColor: function(index){
console.log(index + "has changed to be true");
// this.isActive[index] = true; 通过索引修改数组值不是响应式的
this.isActive.splice(index, 1, true);
}
}
})
</script>
</body>
</html>
之前用this.isActive[index] 来修改数组值,页面上的字体一直不变色,但检查isActive的值又是变的,纠结了半天,才有大神点醒说通过索引修改数组值不是响应式的。特此mark

浙公网安备 33010602011771号