vue.js - VueJS计算属性数据绑定问题
问题描述
https://jsfiddle.net/rohan0793/h7gn8qdv/
所以我试图用上面小提琴中的计算属性来实现一个简单的待办事项列表。有 3 个列表。所有任务。已完成的任务。未完成的任务。问题是,如果我单击未完成列表中未完成任务的复选框,或已完成列表中的完整任务,它下面的任务也会被切换。我不确定为什么会出现这种行为。是因为事件以某种方式传播吗?我也尝试@click.stop
了复选框,但没有运气
解决方案
这里的问题是您没有key
在循环中使用任何属性。key
特殊属性主要用作 Vue 的虚拟 DOM 算法在将新节点列表与旧列表进行比较时识别 VNode 的提示。
在没有键的情况下,Vue 使用一种算法来最小化元素移动,并尝试尽可能多地就地修补/重用相同类型的元素。因此,您将获得以下行为:
如果我单击未完成列表中未完成任务的复选框,或已完成列表中的完整任务,它下面的任务也会被切换。
因此,要解决此问题,您只需绑定key
到每个循环,例如:
<li v-for="task in incompleteTasks" :key="task.id">
<input type="checkbox" v-model=task.completed>{{ task.description }}
</li>
使用键,它将根据键的顺序更改对元素进行重新排序,并且不再存在键的元素将始终被删除/销毁。
推荐阅读
- java - 使用用于 filenet p8 的 API 的基于角色的安全性
- xml - 未显示 XML 和 XSL 转换类别
- angular - Angular 10 NullInjectorError:没有 HighContrastModeDetector 的提供者
- c# - C# 中 Edge Legacy 的自动化测试
- java - CryptoJs AES 加密和 Java 解密
- javascript - 找不到 Api::V1::BuildersController#update 的模板,渲染头:no_content
- python-3.x - 在对 Linkedin 令牌回顾的 POST 请求期间,client_id 丢失错误
- python - 在 xlsxwrtier 中使用嵌套公式
- python-xarray - xr.apply_ufunc 过滤 3d x 数组
- css - 反应原生绝对定位