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

时间:2015-03-17 03:30:11

标签: 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);

这不会强制整个表重新呈现吗?

1 个答案:

答案 0 :(得分:4)

将集合定位为特定的密钥路径:

// 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有一些聪明才能重新渲染相同价值的东西。虽然它仍然需要做更多的比较。