【问题标题】:How to get data from server before component is mounted vue2.0vue2.0 组件挂载前如何从服务器获取数据
【发布时间】:2018-01-10 23:59:13
【问题描述】:

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

我的文件:

第一个 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)
    }
}

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

【问题讨论】:

  • 解决方法:return new Promise((resolve, reject) = >{ });

标签: javascript typescript vue.js vuejs2


【解决方案1】:

解决方法:

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("/")
            }
        })

【讨论】:

    猜你喜欢
    • 2021-04-25
    • 2018-03-27
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 2016-07-20
    相关资源
    最近更新 更多