副作用が加えられるとコールバックを発火するオブジェクトを作れる。ネストしたオブジェクトもとれる。
Vue.jsの$dataを知っている人は、getter/setterが専用に置き換えられたそれだと思えばよい。逆に言えばそれだけしかしないのだが。
何に使うの
JSのMVW用のミドルウェア。README見る限り、Reactと一緒に使うのを想定しているが、APIを見る限り、別にそれに限ったものでもない。役割はモデル層だけに限定される。
とはいえ、ViewModel的に使うのが一番適していると思われる。
使い方
var Cotex = require('cortexjs');
var c = new Cortex({a:1, b: [1], c: {d: 2}});
c.on('update', function(c){
console.log('updated', c.val());
});
c.a.val() //=> 1
c.b.push(2); //=> modified and fire
c.c.d.set(3);//=> modified and fire