在不重新渲染整个 DOM 的情况下,用对象更新数组的最有效方法是什么?
What is the most efficient way to update an array with objects without re-rendering the entire DOM in 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);
这不会强制整个 table 重新渲染吗?
将集合定位到尽可能具体的键路径:
// 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 在不重新渲染具有相同价值的东西方面有一些聪明之处。虽然还是要多做比较。
如果我有一个包含对象的数组。
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);
这不会强制整个 table 重新渲染吗?
将集合定位到尽可能具体的键路径:
// 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 在不重新渲染具有相同价值的东西方面有一些聪明之处。虽然还是要多做比较。