vue如何切换样式?

发布于 2022-09-04 19:55:43 字数 272 浏览 7 评论 0

比如
有三个按钮

button1.current button2.current button3.current

默认高亮button1,点击之后切换

在data写了个数组 [true, false, false]

click的method里传个index,@click="a(index)" button是循环出来的

用传入index来进行数组切换,this.array[index] = true

重新赋值后,dom没更新...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

后来的我们 2022-09-11 19:55:43

this.array[index] = true是无法被检查到,具体看数组更新检测

半衬遮猫 2022-09-11 19:55:43

直接上代码看效果吧。
https://jsfiddle.net/zhoou/d6...

*{ margin:0; padding:0; }
ul,li,ol{ list-style: none; }
.on{ color: red; }
<div class="el">
    <ul class="menu">
        <li v-for='item in menu' v-bind:class="{'on':flag==$index}" v-on:click='light($index)'>{{item.name}}</li>
    </ul>
</div>
var app=new Vue({
    el:'.el',
    data:{
        menu:[
            {'name':'语文'},
            {'name':'数学'},
            {'name':'自然'},
            {'name':'社会'},
            {'name':'和谐'}
        ],
        flag:0
    },
    methods:{
        light:function(index){
            this.flag=index;
        }
    }
});

效果:
图片描述

盗梦空间 2022-09-11 19:55:43

vue的官方文档里面,for循环是可以带俩个参数的,你可以带上当前点击对象的index,传入点击事件,点击事件会修改nowindex , 计算属性计算当前的index和data里面的nowIndex是不是相同,如是相同就是会改变样式,否则就会选择渲染被动的样式

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文