Mithril vnode lifecycle

HTML

<script src="https://rawgit.com/lhorie/mithril.js/next/mithril.js"></script>

JavaScript

var data = {
	flag: false
}

var App = {
	view: function (v) {
		return [
    	m('p', `Click the button and watch the console:`),
			m('button[type=button]', {
				'onclick': () => data.flag = !data.flag
			},
				`Toggle flag`
			),
			[(data.flag ?
				m('p', {
					key: 'omytta',
					oninit        : function (v)    {console.log('oninit') },
					onbeforeupdate: function (v, o) {console.log('onbeforeupdate') },
					oncreate      : function (v)    {console.log('oncreate') },
					onupdate      : function (v)    {console.log('onupdate') },
					onbeforeremove: function (v)    {console.log('onbeforeremove') },
					onremove      : function (v)    {console.log('onremove') },
				},
					`Flag is true.`
				)
				:
				m('p', {
					key: 'kjfklej'
				},
					`Flag is false.`
				)
			)]
		]
	}
}

m.mount(document.body, App)