为什么 react要使用immutable.js

1,197 阅读1分钟

前提条件

首先有一个非常巨大的对象…


var todos  = {
	t79444dae: { title: 'Task 50001', completed: false },
  	t7eaf70c3: { title: 'Task 50002', completed: false },
  	t2fd2ffa0: { title: 'Task 50003', completed: false },
 	 t6321775c: { title: 'Task 50004', completed: false },
 	 t2148bf88: { title: 'Task 50005', completed: false },
  	t9e37b9b6: { title: 'Task 50006', completed: false },
 	 tb5b1b6ae: { title: 'Task 50007', completed: false },
  	tfe88b26d: { title: 'Task 50008', completed: false }
}



需求:现在需要把其中的某条记录做修改,并返回一个新的对象


var id = 'tfe88b26d';


var newsTodos = Object.assign({}, todos, {
	[id]: Object.assign({}, todos[id], { completed: !todos[id].completed})
});

console.log( newsTodos );


如果是像上面传统的方式操作,则需要消耗大量的空间和时间,则可以使用 immutable.js 完成

const { fromJS } = require('immutable');

var newTods = fromJS( todos);


var news = newTods.setIn(['tfe88b26d', 'completed'], true);

console.log( news.toJS() );