老师给我捋一捋逻辑

老师给我捋一捋逻辑

前面部分都听懂了,就是用随机数来改变轮播图的位置,到这里都没什么问题,然后因为无缝滚动的关系,第一张跟最后一张被复制多一份,他们没有跟着改变所以生的问题,那么在swiper这里加的keyId 作为引起整个页面重新加载,我都能理解。
但是唯一一点想不通的就是,home/slider.vue页面里面的页面发生变化,是怎么通知到swiper里面,让他改变keyId的值的?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕言 2020-04-22 13:48:16

同学你好,是可以的这样理解的。父组件的数据发生变化,子组件里的watch就可以监听到,改变keyId,触发组件的更新。

继续加油,祝学习愉快~

好帮手慕言 2020-04-22 11:06:35

同学你好,老师想要在更新的时候重新加载swiper组件,所以使用了更新key的方式来实现效果

http://img1.sycdn.imooc.com//climg/5e9fab6309788e0807460161.jpg

如下是给keyId初始化,这里同学需要注意:老师只是默认值也给了一个随机数。随机数生成什么,它的值就是什么。例如这里随机数生成的是5 ,那么它就是5 。

http://img1.sycdn.imooc.com//climg/5e9fab91096a09b403810123.jpg

父组件传递了数据:

http://img1.sycdn.imooc.com//climg/5e9fad48095f39c304900214.jpg

子组件需要在数据改变的时候,更新key值,所以在监听的函数中,去修改keyId的值。这样当数据发生改变,就会触发监听中的函数,然后再随机给它赋值另一个随机数,让keyId的值改变,就会触发组件的更新了。

http://img1.sycdn.imooc.com//climg/5e9fad1f09f00a6304960419.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕仰2255090 #1
    父组件的:data="sliders"传递的sliders数组因为随机数改变,传给了子组件,然后因为sliders数组产生变化,所以触发了watch,然后调用了data(newData)这个方法,这里的newData就是sliders,是这样理解吗?
    2020-04-22 11:53:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师