magix-components
Version:
56 lines (54 loc) • 1.95 kB
HTML
<h2>mx-loading</h2>
<h3>mask mixin</h3>
<div class="pt20 clearfix">
<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>
</div>
<div class="pt20">
<div>HTML Code:</div>
<pre><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></pre>
<div class="pt10">Javascript Code:</div>
<pre>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();
}
});</pre>
</div>