Commit 24c8f4eaba6250092d30f0c7b2282a3a7f5797e6

Authored by Aresn
1 parent dd28e57f

LoadingBar support SSR

Showing 1 changed file with 13 additions and 14 deletions   Show diff stats
src/components/loading-bar/loading-bar.js
1 import LoadingBar from './loading-bar.vue'; 1 import LoadingBar from './loading-bar.vue';
2 import Vue from 'vue'; 2 import Vue from 'vue';
3 -import { camelcaseToHyphen } from '../../utils/assist';  
4 3
5 LoadingBar.newInstance = properties => { 4 LoadingBar.newInstance = properties => {
6 const _props = properties || {}; 5 const _props = properties || {};
7 6
8 - let props = '';  
9 - Object.keys(_props).forEach(prop => {  
10 - props += ' :' + camelcaseToHyphen(prop) + '=' + prop; 7 + const Instance = new Vue({
  8 + data: _props,
  9 + render (h) {
  10 + return h(LoadingBar, {
  11 + props: _props
  12 + });
  13 + }
11 }); 14 });
12 15
13 - const div = document.createElement('div');  
14 - div.innerHTML = `<loading-bar${props}></loading-bar>`;  
15 - document.body.appendChild(div);  
16 -  
17 - const loading_bar = new Vue({  
18 - el: div,  
19 - data: _props,  
20 - components: { LoadingBar }  
21 - }).$children[0]; 16 + const component = Instance.$mount();
  17 + document.body.appendChild(component.$el);
  18 + const loading_bar = Instance.$children[0];
22 19
23 return { 20 return {
24 update (options) { 21 update (options) {
@@ -34,7 +31,9 @@ LoadingBar.newInstance = properties =&gt; { @@ -34,7 +31,9 @@ LoadingBar.newInstance = properties =&gt; {
34 }, 31 },
35 component: loading_bar, 32 component: loading_bar,
36 destroy () { 33 destroy () {
37 - document.body.removeChild(div); 34 + setTimeout(function() {
  35 + document.body.removeChild(document.getElementsByClassName('ivu-loading-bar')[0].parentElement);
  36 + }, 500);
38 } 37 }
39 }; 38 };
40 }; 39 };