mx-loading

mask mixin

loading mixin只要view启用即可,不需要修改view中的任何方法即可完成相应的效果

通常某个view首次渲染时我们会在节点内部增加一个loading动画,而在view后续渲染时,不能把内容整个销毁换成动画,这个成本太高了。

为了解决后续也能显示一个加载动画,可启用该mixin,解决后续的动画显示。

第<%=count%>次渲染页面

HTML Code:
<p>
    loading mixin只要view启用即可,不需要修改view中的任何方法即可完成相应的效果
</p>
<p>
    通常某个view首次渲染时我们会在节点内部增加一个loading动画,而在view后续渲染时,不能把内容整个销毁换成动画,这个成本太高了。
</p>
<p>
    为了解决后续也能显示一个加载动画,可启用该mixin,解决后续的动画显示。
</p>
<p class="mt10 mb10">
    第<%=count%>次渲染页面
</p>
<button mx-click="refresh()" class="btn btn-brand mt10">点此按钮2s后重新渲染当前view</button>
Javascript Code:
let Magix = require('magix');
let MLoading = require('app/gallery/loading/mask');
module.exports = Magix.View.extend({
    tmpl: '@mask.html',
    mixins: [MLoading],
    init() {
        this.count = 1;
    },
    render() {
        let me = this;
        setTimeout(me.wrapAsync(() => {
            me.updater.digest({
                count: this.count++
            });
        }), 2e3);
    },
    'refresh<click>' () {
        this.render();
    }
});