信息流广告组件在v-for时,可以直接写在循环里面吗,如果写在里面会被循环请求加载多次吗?怎么在每一次请求列表数据后只加载显示一次,这是我现在的写法,这样有问题吗
复制代码<list class="list">
<cell v-for="(item,index) in Data" :key="item.id">
<view>....这里是列表框的数据</view>
<ad style="width: 700rpx; margin-top: 20rpx; margin-left: 25rpx;" adpid="*********"></ad>
</cell>
</view>
这样会被循环请求多次吗
1 个回复
最佳回复
8***@qq.com - 欢迎观看最近更新的《uni-app 踩坑实录》,涉及一些在文档上不容易看到的疑难杂症的解决方案。https://www.bilibili.com/cheese/play/ss60198
你当前的写法是会每次都请求的。可以试一下下边的写法:
复制代码
<template> <view class="content"> <view v-for="(item, key) in showListData" :key="item.id"> <view v-if="!item.isAd"> <!-- 这里是列表数据 --> </view> <view v-else> <!-- 这里放广告 --> <!-- <ad adpid="1111111111"></ad> --> </view> </view> </view> </template> <script> export default { data() { return { listData: [ { isAd: false, id: 1 }, { isAd: false, id: 2 } ] }; }, computed: { // 每次数据变化,将表示广告的数据放进去。 template模板中根据isAd字段判断是否显示广告 showListData() { return [...this.listData, { isAd: true, id: 3 }]; } } }; </script>