Vue如何让异步数据先请求完, 在渲染页面

比如data1是一个异步请求数据

<template>
  <ul>
    <li v-for="data1"></li>
  </ul>
</template>
<script>
  export default{
    data: function(){
      return {
        data1: []
      }
    }
  }
</script>
阅读 92.6k
9 个回答

在created的时候发送请求,然后将获取的数据传给data1就行了,实在不行再在请求外面封装一层this.$nextTick也行。

created() {
    this.$nextTick(function () {
      this.$http.get(this.$apiurl+'category')
        .then((res) => {
          this.categories = res.data
        })
    })
  },
新手上路,请多包涵

v-if="data"

不需要,请求数据完成后,组件会自动重新渲染,而在请求数据完成之前一般显示正在加载中等等。

VUE的数据绑定,是实时进行的,异步请求处理完,只要你不给 data 赋值,页面永远不会渲染,想什么时候渲染就什么时候赋值

在 created 中写请求数据的部分

本来就有了数据就渲染页面,你要做的就是出来数据的先后顺序而已

新手上路,请多包涵

直接给异步请求回来的数据赋值就好了,this.data1={请求回来的数据},然后调用这个方法就更新了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏