javascript - 在不在 RactiveJS 中重新渲染整个 DOM 的情况下,用对象更新数组的最有效方法是什么?

标签 javascript arrays ractivejs

如果我有一个包含对象的数组。

var tableAry = [
  { id:0, name:"Bob"},
  { id:1, name:"Tim"},
  { id:2, name:"Pete"},
];

我想将 Tim 更新为“Tim Smith”。

tableAry[1] = { id:1, name:"Tim Smith"};

如何在不重置整个阵列的情况下执行此操作?

ractive.set("table",tableAry);

这不会强制重新渲染整个表格吗?

最佳答案

将集合定位到尽可能具体的键路径:

// single property
ractive.set("table.1.name", "Tim Smith");

// multiple properties in one go:
ractive.set({
    "table.1.name": "Tim Smith",
    "table.1.age": 12,
});

// you can update the object
var item = ractive.get('table.1');
item.name = 'Tim Smith';
item.age = 22;
ractive.set("table.1", item);

也就是说,Ractive 在不重新渲染具有相同值(value)的事物方面有一些聪明之处。虽然它仍然需要做更多的比较。

关于javascript - 在不在 RactiveJS 中重新渲染整个 DOM 的情况下,用对象更新数组的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29090827/

相关文章:

javascript - 菜单 3D 变换

javascript - 如何在node.js中以特定时间戳搜索数组中的结果

java - 如何替换/删除数组 exp 的求值?

javascript - 以简单的方式显示与文件类型相对应的图标

javascript - 如何修复 ractive.js 中的 "Could not find template for partial"?

javascript - 如何使用相同的随机排序对两个数组进行排序

javascript - 在文件之间共享 'this'

python - 为什么这段代码不能无限运行?

将数组的指针更改为更大的数组

node.js - Ractive 是否可以识别 NODE_ENV 进行调试?