vue.js - Vue $watch 用于对象数组
问题描述
我是 Vue 的新手。我们正在将代码从 dojo 迁移到 Vue。我试图将手表添加到对象数组中。我必须添加手表的数据是一个对象数组,而对象又可以有数组。
样本数据:
‘ItemList’: [
{
‘item’: {
‘term’: ‘1’,
‘timing’:‘A’
‘steps’: [{}], ( Array )
‘parameter’: [{}] ( Array)
…
…
almost 600 values
}
},
{
‘item’: {
‘term’: ‘2’,
‘timing’:‘B’
‘steps’: [{}],
‘parameter’: [{}]
....
....
almost 600 values
}
}
]
在旧的道场中,代码是这样的:
for (c = 0; c < itemList.length; c++) {
item=itemList[c];
var itemWatch = item.watch(function(name,oldVal,newVal) {
}
}
//Here the name gives what value of array is changed . I need that for future
//logic. we can add watch on each item.
computed:{
clonedItems: function(){
return JSON.parse(JSON.stringify(this.itemList));
}
},
watch:{
clonedItems:{
deep: true,
handler: function (val, oldVal) {
这个我试过了,效果很好,但是要知道这个值发生了什么变化将是繁重的计算。这个数组可以有 100 个项目,每个项目有 600 个项目,我们也有数组。
请指导什么是实现我们所拥有的类似功能的最佳方法。
解决方案
推荐阅读
- javascript - 带有串口本机模块的电子
- javascript - 如果用户当前的时区时间与“开放时间”(ES6)一致,则显示 div
- r - 删除 R Leaflet 中的特定图层
- r - 如果在公式参数中使用点,为什么 r 聚合求和会产生错误的结果?
- python - Python asyncio NotImplementedError
- excel - 如何从数据透视表中过滤出所有“字符串”
- javascript - JavaScript API fetch 在第一次加载时不起作用
- android - 使用 Firestore 查询仅获取用户尚未投票的民意调查
- python - “OneToOneField”的实例没有“用户名”成员 django 2.2.5
- javafx - 为什么 stage.setResizable(false); 和 stage.setMaximized(true); 不在 JavaFx 中工作?