如何在安装组件之前从服务器获取数据vue2.0

时间:2017-08-03 11:43:26

标签: javascript typescript vue.js vuejs2

我在标题中有一个问题 如何停止在<router-view>中安装组件,直到从服务器接收数据或如何在组件安装到<router-view>之前获取数据

我的档案:

1st main.js

new Vue({
  el: '#app',
  router,
  components: { Login, Start },
  data: function(){
    return{
      info: null,
    }
  },
  methods:{
    bef: function(){
      this.$http.get('xxx').then(function(response){
        return response.body
      });
    }
  },
  beforeMount(){
    this.info= this.bef()
  }
})

第二个组件文件Comp.vue

export default{
    name: 'start',
    data(){
        return{

        }
    },
    beforeMount(){
       console.log(this.$parent.info)
    }
}

如何正确地获取非空值,但是来自服务器的响应?
提前谢谢

1 个答案:

答案 0 :(得分:0)

解决了:

checkLogged: function() {
        return new Promise((resolve,reject) => {
          this.$http.get('xxx').then(response => {
            if (response.body == 1) {
              resolve(true);
            } else {
              resolve(false);
            }
          }, response => {
            reject('connection failure');
          });
        });
    },

和第二档:

this.$root.checkLogged().then((response) => {
            if(response){
                this.logged = true
            }else{
                router.push("/")
            }
        })