vue 使用v-for遍历的节点,点击事件会触发dom刷新?

图片.png
图片.png
图片.png
每次调用clickContacts的时候,都会触发getClass 导致已经渲染过的节点类发生变化~~~~
图片.png
图片.png
图片.png
图片.png
图片.png
图片.png
图片.png图片.png
图片.png
图片.png
图片.png

阅读 3.8k
4 个回答

应该不会重新渲染这部分才对,你click里改的数据在这段dom中并没有依赖到,应该是不会重渲的。你检查下是否有改到依赖的数据呢

只要你的getClass方法不在每次执行的时候都重新做一遍随机操作就可以了。

bind:class="getClass(m)"  // 绑定class这里传m
... 
// methods里的getClass方法
getClass(m){
    const arr = [ 'redBg', 'greenBg', 'yellowBg', 'blueBg' ]
    if (!m.class) {
        m.class = arr[parseInt(Math.random() * 4, 10)] 
    }
    return m.class
}

是会触发的 页面发生改变就会重新渲染一遍. 而且你的 bind 的 class 不建议调用方法的方式写

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题