Mobx extendObservable example

Shows mobx's observable feature author(s): Matt Ruby

by Matt Ruby

HTML

<div id="react-log"></div>

<script src="https://cdn.jsdelivr.net/g/[email protected](react.min.js+react-dom.min.js),[email protected]"></script>
<script src="https://unpkg.com/[email protected]/lib/mobx.umd.min.js"></script>
<script src="https://unpkg.com/[email protected]/index.js"></script>
<script src="https://rawgit.com/mattruby/mobx-examples/master/logging-utils.js"></script>
<script>
  wrapConsole();

</script>

JavaScript

var person = mobx.observable({
  names: [],
  names2: [{
    foo: 'Matt'
  }]
});

mobx.autorun(function() {
  console.log('will fire: ' + person.names);
});

mobx.autorun(function() {
  console.log('wont fire: ' + person.names2);
});

mobx.autorun(function() {
  _.forEach(person.names2, function(name) {
    console.log('Whats foo ? : ' + name.foo);
  });
});

person.names.push('Ruby');
person.names.push('Red');
person.names.push('Matt');

person.names2[0].foo = 'test';