菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
45
0

如何用react写轮播?

原创
05/13 14:22
阅读数 998

前提:

安装好Node.js安装。【推荐阅读:nodejs怎么下载安装?

步骤:

1、安装swiper

使用node包管理器npm来安装swiper

npm install swiper --save

2、在轮播组件里引入swiper

//引入此路径,才不会打包失败
import Swiper from 'swiper/dist/js/swiper.js';
//引入样式,还可以加上自己的样式
import 'swiper/dist/css/swiper.min.css';

3、在组件挂在完毕的时候,生成Swiper对象,在生命周期钩子函数componentDidMount()中写入轮播方法

componentDidMount(){
    //可以加上你需要的条件等,然后生成Swiper对象,
    //一定要检查是不是每次都生成了Swiper对象,否则可能出现不滑动的情况和别的情况等
    new Swiper('.swiper-container',{
        loop: true, //这里是自动轮播
    
        // 如果需要分页器
        pagination: {
          el: '.swiper-pagination',//这里是分页器设置
        },
    
        // 如果需要前进后退按钮
        navigation: {
          nextEl: '.swiper-button-next',
          prevEl: '.swiper-button-prev',
        },
    
        // 如果需要滚动条
        scrollbar: {
          el: '.swiper-scrollbar',
        },
        
        observer:true,//修改swiper自己或子元素时,自动初始化swiper
        observeParents:true,//修改swiper的父元素时,自动初始化swiper
    });
}

4、在render中渲染dom

(1)如果数据是根据异步加载完成那么我们需要通过数组遍历:

render() {
    return (
        <div className="App">
            <div className="swiper-container">
                <div className="swiper-wrapper">
                {
                    this.state.carouselr.map((item,index)=>{
                        return(
                                <div className="swiper-slide" key={index}>
                                    <img src={item.picUrl}/>
                                </div>
                        )
                    })
                }
        </div>
        <div className='swiper-pagination'></div>
            </div>
        </div>
        );
}

(2)如果是直接在render中渲染那么代码如下:

render() {
    return (
        <div className="Hello">
            <div className="swiper-container">
            <div className="swiper-wrapper">
                <div className="swiper-slide">Slide 1</div>
                <div className="swiper-slide">Slide 2</div>
                <div className="swiper-slide">Slide 3</div>
            </div>
                <!-- 如果需要分页器 -->
                <div className='swiper-pagination'></div>
                
                <!-- 如果需要导航按钮 -->            
                <div class="swiper-button-prev"></div>
                <div class="swiper-button-next"></div>
                                
                <!-- 如果需要滚动条 -->            
                 <div class="swiper-scrollbar">
            </div>
        </div>
    );
}

参考文档

swiper4.x 官方文档

发表评论

0/200
45 点赞
0 评论
收藏
为你推荐 换一批