这篇文章将为大家详细讲解有关如何使用React完成一个图片轮播组件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
10年积累的成都做网站、成都网站设计、成都外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有阿巴嘎免费网站建设让你可以放心的选择与我们合作。这次给大家带来用React完成一个图片轮播组件,使用React完成一个图片轮播组件的注意事项有哪些,下面就是实战案例,一起来看一下。
使用React实现上述功能,首先,划分组件:
组件SlideM代表中图组件,其始终维护一个state: currentMIndex,即当前的中图图片的index值。
组件SlideS代表小图组件,要维护两个state: currentSIndex,currentSPage, 即当前的小图图片的index值和小图当前的页数;
外层组件SlideMS 接受几个参数作为props:
, document.getElementById('js-img-slide')); SlideM、SlideS再从SlideMS中获取参数进行内部渲染。 {self.setSmallIndex(index)}} /> {self.setMediumIndex(index)}}/>
当点击中图的切换按钮时,计算图片偏移量,然后将新的currentMIndex传递给父组件,父组件setState通知两个子组件currentMIndex发生了改变;
小图组件中涉及的计算比较多,可以将这些抽成方法,例如:根据给定的中图宽度计算一页有几张小图、计算小图总页数、根据给定的index值判断小图处于当前哪一页等。
当点击小图组件的左右箭头时,计算图片的偏移量(首先计算一张中图里有几张小图),然后setState修改小图currentSPage的值。父组件setState通知两个子组件currentMIndex发生了改变;
中图、小图组件分别在componentWillReceiveProps 里接收到了新的值的改变后,重新setState,更新组件内部的state,就实现了两者之间的通信。
以上是实现的一个思路。在实际应用中,场景会复杂一些,例如,第一张图片可能存在播放视频的需求,还有当点击中图图片时,能切换到大图模式,大图模式下能正常轮播,并且在关闭大图模式时,中图和小图自动定位到刚才最后一张浏览的图片。这时会涉及稍微复杂一些的运算,需要在此基础上做一下兼容。
非常尴尬的一点:图片轮播时的动画效果,依旧使用了jquery的animate.
以上就是用React完成一个图片轮播组件的详细内容,更多请关注创新互联网站制作公司其它相关文章!
关于“如何使用React完成一个图片轮播组件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。