Как инкапсулировать состояние с помощью метода обновления и мифрилового компонента

Как инкапсулировать состояние с помощью метода обновления и мифрилового компонента

Я хочу сделать состояние, которое обновляется каждый кадр анимации запроса.

Я хочу инкапсулировать состояние с помощью метода обновления и соответствующего компонента:

Но это терпит неудачу, потому что это не правильное использование мифриловых компонентов.

 import * as Vnode from 'mithril/render/vnode'; import * as h from 'mithril/hyperscript'; export default function Play() { // background is another encapsulation like Play let background = new Background(this); let data; this.init = d ={amp}gt; { data = d; background.init(); }; this.update = delta ={amp}gt; { background.update(delta); }; this.component = ({ view() { return h('div.'   data, [Vnode(background.component)] ); }); } 

Код рендеринга:

 import mrender from 'mithril/render'; import * as Vnode from 'mithril/render/vnode'; export default function MRender(mountPoint) { this.render = (component) ={amp}gt; { mrender(mountPoint, Vnode(component)); }; } 

Использование:

 let mrender = new MRender(element); let play = new Play(); function step() { play.update(); mrender.render(Vnode(play.component)); requestAnimationFrame(step); }; step(); 

Я хочу, чтобы изменения состояния и рендеринга кода были в одном и том же месте, потому что состояние связано с анимацией вида

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector