2014-12-04 19 views
7

Bir flux uygulaması üzerinde çalışıyorum ve durumu korumak için immutable.js'u kullanmayı düşünmekteyim. Reaksiyonun değişmez nesneleri (http://facebook.github.io/react/docs/update.html) güncellemek için kendi yardımcısını sağladığını gördüm, ancak immutable'ın kendi setIn ve updateIn yöntemlerinden çok farklı olduğunu söyleyemedim (yani, eğer değiştiyse, === ile nesneleri karşılaştırıyorum) setIn ile). Immutable.js ile reaksiyon yardımcısı kullanmak için bir neden var mı? Sadece sözdizimsel şeker mi?React'ın immutable yardımcıını Immutable.js ile kullanma

TL; DR geçerli:

var map = Immutable.fromJS({bar: 'baz'}); 
map2 = map.set('bar', 'foo'); 

cevap

8

React.addons.update den

var map = Immutable.fromJS({bar: 'baz'}); 
map2 = React.addons.update(map, { 
     bar: {$set: 'foo'} 
    }); 

farklı Immutable.js değerlerle çalışmaz; works with plain JavaScript objects and arrays. Immutable.js içinde

var map = { bar: 'baz' }; 
var map2 = React.addons.update(map, { 
    bar: {$set: 'foo'} 
}); 
console.log(map2); // A plain JS object of value `{bar: 'foo'}` 

tür performans ve uzay yararları için special verileri structures kullanılarak uygulanır; React.addons.update tarafından tüketilen ve üretilen düz JavaScript nesneleri açık değildir.