recommend.vue

<script type="text/ecmascript-6">
import Slider from 'base/slider/slider'
import {getRecommend, getDiscList} from 'api/recommend'
import {ERR_OK} from 'api/config' export default {
name: 'Recommend',
data() {
return {
recommends:[]
}
},
components: {
Slider
},
created() {
this._getRecommend()
},

methods: {
_getRecommend(){
getRecommend().then((res)=> {
if(res.code === ERR_OK){
console.log(res.data.slider); this.recommends = res.data.slider
}
})
}
} }
</script>

  在recommend.vue中created执行this._getRecommend(),这是个异步操作,可能需要几秒, 但是slide.vue中的mounted钩子已经渲染执行,

但slide.vue中插槽无内容,出错

<template>
<div class="slider" ref="slider">
<div class="slider-group" ref="sliderGroup">
<slot>
</slot>

</div>
<div class="dots">
<span class="dot"></span>
</div>
</div>
</template> <script type="text/ecmascript-6">
import {addClass} from 'common/js/dom'
import Bsrcoll from 'better-scroll' export default {
name: 'Slider',
props: {
loop: {
type: Boolean,
default: true
},
autoplay: {
type: Boolean,
default: true
},
interval: {
type: Number,
default: 4000
}
},
mounted() {
setTimeout( () => {
this._setSliderWidth()
this._initSlider()
},20)//浏览器涮新时间
},
methods: {
_setSliderWidth(){
//获取sliderGroup子元素dom集合
this.children = this.$refs.sliderGroup.children let width = 0
let slideWidth = this.$refs.slider.clientWidth//slider窗口宽度 for (let i =0; i < this.children.length; i++) {
let child = this.children[i] addClass(child, 'slider-item') child.style.width = slideWidth + 'px' width += slideWidth }
if(this.loop){
width += 2*slideWidth
}
this.$refs.sliderGroup.style.width = width + 'px' },
_initSlider(){ }
} }
</script>

所以在父级添加v-if="recommends.length",来判断recommends是否得到

<div class="slider-wrapper" v-if="recommends.length">
<slider>
<div v-for="item in recommends" :key="item.id ">
<a :href="item.linkUrl">
<img :src="item.picUrl" alt="" />
</a>
</div>
</slider>
</div>

最新文章

  1. 在SQL中 给字符串补0方法
  2. HTTP基础03--HTTP报文
  3. python学习--抓取一个网页上图片
  4. 项目开发笔记-传单下发 名片替换 文件复制上传/html静态内容替换/json解析/html解析
  5. oracle表连接------&amp;gt;排序合并连接(Merge Sort Join)
  6. 【LeetCode】24. Swap Nodes in Pairs
  7. 大数据阶乘(The factorial of large data)
  8. Hibernate入门(二)
  9. 求字符数组逆序数(poj1007)
  10. 2018-计算机系机试(第二批)-E-绝对值排序
  11. 1.shell学习之常用语句
  12. (转)CDN的作用与基本过程
  13. git配置SSH Key,上传本地代码至github
  14. 【剑指offer】规则二维数组查找
  15. swig与python
  16. Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件
  17. Python基础-2
  18. TreeMap与LinkedHashMap的区别
  19. ios 获取导航栏和状态栏高度,针对iPhoneX
  20. PCL—点云滤波(初步处理)

热门文章

  1. HDU 1814 Peaceful Commission(2-sat 模板题输出最小字典序解决方式)
  2. ERROR (ConnectionError): HTTPConnectionPool (Caused by &amp;lt;class &amp;#39;socket.error&amp;#39;&amp;gt;: [Errno 111] Connecti
  3. android后台input命令模拟按键【转】
  4. 解决无线网卡 RTL8723BE ubuntu环境下不稳定情况
  5. [POI 2018] Prawnicy
  6. Luogu3403跳楼机
  7. ubuntu系统快捷键设置
  8. [Swift通天遁地]五、高级扩展-(11)图像加载Loading动画效果的自定义和缓存
  9. T4模板使用记录,生成Model、Service、Repository
  10. 吝啬的国度 ---用vector 来构图