LoadingBar support SSR

This commit is contained in:
Aresn 2017-06-01 11:07:30 +08:00
parent dd28e57f27
commit 24c8f4eaba

View file

@ -1,24 +1,21 @@
import LoadingBar from './loading-bar.vue'; import LoadingBar from './loading-bar.vue';
import Vue from 'vue'; import Vue from 'vue';
import { camelcaseToHyphen } from '../../utils/assist';
LoadingBar.newInstance = properties => { LoadingBar.newInstance = properties => {
const _props = properties || {}; const _props = properties || {};
let props = ''; const Instance = new Vue({
Object.keys(_props).forEach(prop => { data: _props,
props += ' :' + camelcaseToHyphen(prop) + '=' + prop; render (h) {
return h(LoadingBar, {
props: _props
});
}
}); });
const div = document.createElement('div'); const component = Instance.$mount();
div.innerHTML = `<loading-bar${props}></loading-bar>`; document.body.appendChild(component.$el);
document.body.appendChild(div); const loading_bar = Instance.$children[0];
const loading_bar = new Vue({
el: div,
data: _props,
components: { LoadingBar }
}).$children[0];
return { return {
update (options) { update (options) {
@ -34,7 +31,9 @@ LoadingBar.newInstance = properties => {
}, },
component: loading_bar, component: loading_bar,
destroy () { destroy () {
document.body.removeChild(div); setTimeout(function() {
document.body.removeChild(document.getElementsByClassName('ivu-loading-bar')[0].parentElement);
}, 500);
} }
}; };
}; };