mounted钩子问题
2024-09-03 04:07:53
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>
最新文章
- 在SQL中 给字符串补0方法
- HTTP基础03--HTTP报文
- python学习--抓取一个网页上图片
- 项目开发笔记-传单下发 名片替换 文件复制上传/html静态内容替换/json解析/html解析
- oracle表连接------&;gt;排序合并连接(Merge Sort Join)
- 【LeetCode】24. Swap Nodes in Pairs
- 大数据阶乘(The factorial of large data)
- Hibernate入门(二)
- 求字符数组逆序数(poj1007)
- 2018-计算机系机试(第二批)-E-绝对值排序
- 1.shell学习之常用语句
- (转)CDN的作用与基本过程
- git配置SSH Key,上传本地代码至github
- 【剑指offer】规则二维数组查找
- swig与python
- Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件
- Python基础-2
- TreeMap与LinkedHashMap的区别
- ios 获取导航栏和状态栏高度,针对iPhoneX
- PCL—点云滤波(初步处理)
热门文章
- HDU 1814 Peaceful Commission(2-sat 模板题输出最小字典序解决方式)
- ERROR (ConnectionError): HTTPConnectionPool (Caused by &;lt;class &;#39;socket.error&;#39;&;gt;: [Errno 111] Connecti
- android后台input命令模拟按键【转】
- 解决无线网卡 RTL8723BE ubuntu环境下不稳定情况
- [POI 2018] Prawnicy
- Luogu3403跳楼机
- ubuntu系统快捷键设置
- [Swift通天遁地]五、高级扩展-(11)图像加载Loading动画效果的自定义和缓存
- T4模板使用记录,生成Model、Service、Repository
- 吝啬的国度 ---用vector 来构图