vue中怎么使用v-for动态刷新页面?

发布于 2022-09-05 04:35:04 字数 648 浏览 9 评论 0

vue页面已加载,使用axios获取数据,数据返回时动态渲染到页面中,请问这要怎么实现?

methods :

getList: function () {
    let $list = {};
    this.$axios.get('/api/movie/top250',{
      params: {
        start: 0,
        count: 10
      }
    }).then(response => {
      $list = response;
    }).catch(err => {
        alert('error');
    })

    return $list;
  }
  

computed: {

    list: function () {
      return this.getList()
    }
}

<template>

<div>
    <p v-for="(val,index) in list" :key="index">{{val}}</p>
</div>

</template>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

╰つ倒转 2022-09-12 04:35:04

getList返回的时候ajax还未执行完,所以返回的list就是空的
这里个人认为不应该用计算属性
应该在mounted里面调用getlist并设置data中list值

大概:

new Vue({
    ...
    data:{
        list:[]
    },
    mounted:function(){
        var _this = this;
        this.$nextTick(function(){
            _this.getList();
        });
    },
    methods:{
        getList:function(){
            var _this = this;
            ajax(...).then(function(data) {
                _this.list = data;
            });
        }
    }
});
浪推晚风 2022-09-12 04:35:04

computedlist并有变化。直接用data,然后给list赋值,如果还不清楚,我电脑上写个demo

烟花易冷人易散 2022-09-12 04:35:04

定时器不能解决吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文