vue 获取数据

时间:2019-08-22
本文章向大家介绍vue 获取数据,主要包括vue 获取数据使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1。导航完成后获取数据

<template>
  <div>
    <div v-if="loading"> Loading ... </div>
    type
  </div>
</template>

<script>
export default {
  name: 'Type',
  props: {
      msg: String
  },
  created(){
    this.fetchData();
  },
  watch: {
    '$route': 'fetchData'
  },
  data(){
    return {
      loading: false
    }
  },
  methods: {
      fetchData(){
         var self = this;
         this.loading = true;
         console.log("已经进入组件了");
        
         setTimeout(function(){
            self.loading = false;
         },300);
      }
  }
}

 这个里面watch的监听,对导航,? & query带的参数都会重新去调用这个fetchDate。所以,如果局部数据并不想被路由影响,就不要加这个。出去这句,其他的和一般获取数据,加loading没有什么区别。

export default {
  data () {
    return {
      post: null,
      error: null
    }
  },
  beforeRouteEnter (to, from, next) {
    getPost(to.params.id, (err, post) => {
      next(vm => vm.setData(err, post))
    })
  },
  // 路由改变前,组件就已经渲染完了
  // 逻辑稍稍不同
  beforeRouteUpdate (to, from, next) {
    this.post = null
    getPost(to.params.id, (err, post) => {
      this.setData(err, post)
      next()
    })
  },
  methods: {
    setData (err, post) {
      if (err) {
        this.error = err.toString()
      } else {
        this.post = post
      }
    }
  }
}

  获取到数据之前,用户会停留在上一页。我打印了一下,感觉beforeRouteUpdate执行的时间并不比里面的调用提前多少,提前是提前的。

原文地址:https://www.cnblogs.com/chenyi4/p/11393198.html