• 通过索引值修改数组中的元素不是响应式的(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

  • 相关阅读:
    mysql数据库启动停止
    事务的隔离级别
    排序之选择排序
    排序之希尔排序
    排序之折半插入排序
    排序之直接插入排序
    排序之冒泡排序
    排序之快速排序
    字符串拷贝和拼接
    字符串旋转问题
  • 原文地址:https://www.cnblogs.com/boligongzhu/p/15160950.html
Copyright © 2020-2023  润新知