爲何 react要使用immutable.js

前提條件

首先有一個很是巨大的對象…bash

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 }
}



複製代碼

需求:如今須要把其中的某條記錄作修改,並返回一個新的對象ui

var id = 'tfe88b26d';


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

console.log( newsTodos );


複製代碼

若是是像上面傳統的方式操做,則須要消耗大量的空間和時間,則能夠使用 immutable.js 完成spa

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

var newTods = fromJS( todos);


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

console.log( news.toJS() );
  
複製代碼
相關文章
相關標籤/搜索