【Vue学习】1.利用vue,点击列表中的哪一项, 那么该项的文字变成蓝色

一开始改变li的class时时直接利用数组名[index]进行修改,然后一点反应都没有,后来才知道这种利用下标修改数组元素的方式Vue是不能响应式更新的,后来改成了函数方法就成了。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    .active {
      color: aqua;
    }
  </style>
</head>
<body>

<div id="app">
  <ul>
    <li v-for="(m, index) in movies" >
    <!-- 1.使用v-bind对象语法,因为控制的class属性只有一个,可以直接赋值-->
      <h2 :class="{active:isRed[index]}" @click="taggleIsRed(index)">{{index}}.{{m}}</h2>
      <!-- 多个class可以使用数组语法,让代码更简洁-->
      <!-- <h2 :class="getClasses(index)" @click="taggleIsRed(index)">-->{{index}}.{{m}}</h2>
    </li>
  </ul>
</div>

<script src="../js/vue.js"></script>
<script>
  const app = new Vue({
    el: '#app',
    data:{
      movies: ['星际穿越', '钢铁侠', '复仇者联盟', '神奇女侠'],
      isRed: [true,true,true,true]
    },
    methods: {
      taggleIsRed(index){
        // 1.方法一
        // const rev = !this.isRed[index]
        // this.isRed.splice(index,1,rev)
        // 2.方法二,省掉一个变量空间
        Vue.set(this.isRed,index,!this.isRed[index])
      },
      getClasses(index){
        return {active: this.isRed[index]}
      }
    }
  })
</script>

</body>
</html>

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值