当前位置: 首页 > 知识库问答 >
问题:

为什么是v-for

壤驷乐邦
2023-03-14

我正在使用vue-2.6创建一个产品web应用程序。11,axios-0.21。1,vuetify-2.4。3.

我从本地数组中获取类别,然后通过使用v-for将pechUrl作为道具传递到Row组件中。然后在Row组件中,我在获得API响应后,通过使用axios获取ftchUrl,我只是简单地安装它。它工作正常,但问题是类别对象意味着行组件加载随机顺序导致行组件安装,因为它从API获得axios响应。

所以我希望下一行等待,直到上部完全安装或任何其他东西,使其有序加载。

我的组件:

家vue-

<template>
    <div>
        <div v-for="(categories,index) in categories" :key="`${index}`">
            <ItemsCarousel
                :title="categories.title"
                :fetch-url="categories.fetchUrl"
            />
        </div>
    </div>
</template>
<script>
import categoriesList from '@/local-database/Categories.json';
import ItemsCarousel from '@/components/carousel/ItemsCarousel';
export default {
    name: 'Home',
    components: {
        ItemsCarousel
    },
    data: () => ({
        categories: categoriesList.filter( categories => (catalogue.for==true || categories.for=="home"))
    })
}
</script>

项目Carousel.vue-

<template>
<div class="items-carousel">
  <v-lazy v-model="isActive" :options="{threshold: 0.5}">
  <h1>{{title}}</h1>
  <div class="items-carousel" v-for="product in products" :key="product.id">
   <Card  v-bind="{...product}">/>
  </div>
  </v-lazy>
</div>
</template>

<script>
import ProductManger from '@/mixins/ProductManger';
import Card from '@/components/Card';
export default {
  name: 'ItemsCarousel',
  mixins: [ProductManger], // Axios Setup 
  components: {
    Card
  },
  props: ['title','params'],
  data: () => ({
    isActive: false,
    cards: []
  }),
  methods: {
    async loadCard() {
        this.contentMangerCore(this.params) // Function code inside mixins
        .then(res => {
            this.cards = res.data;
        })
    }
  },
  mounted() {
    this.loadCard(); 
  }
};
</script>

数据样本:-

分类表。json-

[{
    "id": 1,
    "name": "Adventure",
    "params": {
        "categories": "Adventure",
        "sort": "ASC"
    }
}, {
    "id": 2,
    "name": "Art",
    "params": {
        "categories": "Art",
        "sort": "DESC"
    }
}, {
    "id": 3,
    "name": "Beauty",
    "params": {
        "categories": "Art",
        "sort": "DESC"
    }
}, {
    "id": 4,
    "name": "Business",
    "params": {
        "categories": "Art",
        "sort": "DESC"
    }
}, {
    "id": 5,
    "name": "Craft",
    "params": {
        "categories": "Art",
        "sort": "DESC"
    }
},...]

products.json-

[{
"name": "AdventureIRC",
"img": "..."
},
{
"name": "Adventie",
"img": "..."
},...]

我希望你们能帮我解决这个问题。。。谢谢:微笑:

共有1个答案

钱京
2023-03-14

您可以创建一个计算方法,确定在任何给定时间实际显示多少类别,并通过成功的axios请求递增。

get categoriesForDisplay() {
  return this.categories.slice(0, this.successfulCarouselFetches + 1)
}

然后定义成功CarouselFetches

data() {
  return {
    //
    successfulCarouselFetches : 0
  }
}

监听在您的Iting-Carousel组件中成功的axios请求:

<ItemsCarousel
  :title="categories.title"
  :fetch-url="categories.fetchUrl"
  @success="successfulCarouselFetches = successfulCarouselFetches + 1"
/>

现在广播成功每当您的xhr完成工作:

methods: {
    async loadCard() {
        this.contentMangerCore(this.params) // Function code inside mixins
        .then(res => {
            this.cards = res.data;
            this.$emit('success');
        })
    }
  },

当页面加载时,页面上将有一个项目旋转木马组件,该组件将执行第一个XHR请求。当组件$emit的事件发生时,包含v-for的父组件将增加成功的轮转蚀刻,这将允许getter分类显示v-for中添加另一个项目轮转

我相信这基本上能满足你的要求。

 类似资料:
  • 本文向大家介绍v-model是什么?有什么用呢?相关面试题,主要包含被问及v-model是什么?有什么用呢?时的应答技巧和注意事项,需要的朋友参考一下 一则语法糖,相当于v-bind:value="xxx" 和 @input,意思是绑定了一个value属性的值,子组件可对value属性监听,通过$emit('input', xxx)的方式给父组件通讯。自己实现v-model方式的组件也是这样的思路

  • 本文向大家介绍v-show和v-if有什么区别?使用场景分别是什么?相关面试题,主要包含被问及v-show和v-if有什么区别?使用场景分别是什么?时的应答技巧和注意事项,需要的朋友参考一下 区别:v-if 不渲染 DOM,v-show 会渲染 DOM v-show 使用场景: 预渲染需求 需要频繁切换显示状态

  • 我正在为即将到来的考试而学习。提供给我的一个图表具有以下算法复杂性,总结了一个具有N个节点和E条边的图的邻接列表。 > 查找边-O(E/N) 插入边缘-O(E/N) 删除边-O(E/N) 枚举节点的边-O(E/N) 我理解邻接列表是什么--我们通过使用列表数组来存储与每个顶点相邻的顶点。但是为什么这些操作是O(E/N)呢?在我看来,如果我们取一个图,其中绘制了所有可能的边(例如,如果图是无向的,我

  • 问题内容: 我用Javassist创建了一个没有实际方法的构造函数 当我试图拿出这堂课的签名时 我懂了 我很困惑“ V”是什么意思?我期望任何一个公共Echo(); 或类似的东西 问题答案: JVM使用一种紧凑的方式来存储方法签名,其中的构造函数被认为是特例。 例如: 表示不带参数的方法 表示它什么也不返回 该计划的其他部分是: -字节 -字符 -双 -浮动 -整数 - 长 -短 -无效 -布尔值

  • 我们正在RHEL平台上运行带有12个节点的Ignite集群,运行在OpenJDK1.8上的Ignite 2.7.0上。 使用使用大量cputime 我们目睹了一个进程的缓慢,当我们试图通过分析JVM来进一步钻探它时,主要的罪魁祸首(占总时间的78%)似乎来自Igniteapi调用。 在77.9个by replace中,39%被gridcacheadapter.equalval占用,38.5%被gr

  • 根据此MIPS指令参考,有两条指令(