React渲染机制如何工作并避免缓慢的DOM操作?

时间:2017-05-29 16:37:59

标签: javascript arrays object

鉴于DOM操作成本高昂,React如何实现其渲染性能?

3 个答案:

答案 0 :(得分:0)

您可以使用for...in使用arr.length = 0循环和空数组来循环对象属性。您还可以使用Array.isArray()首先检查值是否为数组。

var myobj = {
  location : [ 'item1', 'item2', 'item3' ],
  job : [ 'job1', 'job2', 'job3' ],
  other : [ 'other1', 'other2', 'other3' ]
}

for(var key in myobj) {
  if(Array.isArray(myobj[key])) myobj[key].length = 0;
}
console.log(myobj)

或者您可以改为使用Object.keys()forEach()循环。

var myobj = {
   location : [ 'item1', 'item2', 'item3' ],
   job : [ 'job1', 'job2', 'job3' ],
   other : [ 'other1', 'other2', 'other3' ]
}

Object.keys(myobj).forEach(key => myobj[key].length = 0)
console.log(myobj)

答案 1 :(得分:0)

myobj = {
  location: ['item1', 'item2', 'item3'],
  job: ['job1', 'job2', 'job3'],
  other: ['other1', 'other2', 'other3']
}
var getAllKeys = Object.keys(myobj);
getAllKeys.forEach(function(item) {
  myobj[item].length = 0;
})


console.log(myobj)

答案 2 :(得分:0)

myobj = {
   location : [ item1, item2, item3 ],
   job : [ job1, job2, job3 ],
   other : [ other1, other2, other3 ]
}

for(var key in myobj){
   myobj[key] = [];
}