我探索MobX和流逝的一個問題感興趣:MobX自動運行行爲
如果我有這樣的觀察到:
class ItemsStore {
@observable items = [1,2,3];
}
const store = new ItemsStore;
,然後改變它像這樣:
setInterval(() => {
store.items[0] = +new Date
}, 1000)
我注意到以下幾點:
autorun(() => console.log(store.items));
never fires...autorun(() => console.log(store.items[0]));
fires every 1s and gives a new valueautorun(() => console.log(store.items.length));
fires every 1s although value is unchanged
這背後的邏輯API?我期望,因爲store.items
永遠不會觸發,不變的屬性將表現相同。
爲什麼MobX知道我的回調裏面有什麼代碼?它分析我的回調我傳遞給autorun
?
作爲每**不只是待辦事項陣列是由自動運行觀察到,但也待辦事項內的各個屬性*的文檔*被察覺。所以我猜如果數組中的任何項目正在顯示值或使用任何其他計算值,然後自動運行fires.Else,它不會。在文檔中有一個很好的解釋否認這一點.https:/ /mobxjs.github.io/mobx/getting-started.html – pritesh