Major breaking changes to the API
Updated virtual-dom to 1.0.0.
No more interfaces array when declaring DataFlowNodes.
Interfaces are completely removed as a requirement for DataFlowNodes. Instead, use a getter to access properties of input DataFlowNodes, as such model.get('name$')
. When ES6 Proxy is available in browsers, we will use it to implement the getter and recover the original API of model.name$
. For now we must rely on explicit getters.
Removed events
array required output for Views.
Interaction events are dynamically detected whenever they are used by, e.g., Intents.
Removed circularInject()
, enhanced usage of inject()
Cycle.circularInject() was removed, but now a.inject(b)
will return b
so you can make circular dependencies using Intent.inject(View).inject(Model).inject(Intent)
.
Replaced 'ev-click'
with onclick
for exported interaction events in Views.
We now favor the DOM's native way of working rather than virtual-dom jargon. Also the dom-delegator
dependency was removed as consequence.
In summary, before in v0.7.0:
var View = Cycle.createView(['name$'], function (model) {
return {
vtree$: model.name$.map(function (name) {
return h('h1', {'ev-click': 'nameClicks$'}, name);
}),
events: ['nameClicks$']
};
});
Cycle.circularInject(Model, View, Intent);
Now in v0.8.0:
var View = Cycle.createView(function (model) { // no interface array
return {
// notice model.get('name$') instead of model.name$
vtree$: model.get('name$').map(function (name) {
return h('h1', {onclick: 'nameClicks$'}, name); // onclick
})
// no more events array
};
});
Intent.inject(View).inject(Model).inject(Intent); // no more circularInject()