用一个swiper例子来写一下生命周期

思维:

  1. 引入swiper
    $ yarn add swiper
  2. 在对应的组件中引入
  3. 引入css样式
  4. 引入html结构
  5. 实例化
import React, { Component,Fragment } from 'react';
import Swiper from 'swiper'
import 'swiper/dist/css/swiper.css'
import './index.css'
const SwiperItem = ( props ) => {
return (
    <div className = "swiper-slide">
    <img src = { props.item.img }/>
</div>
)
}
class SwiperComponent extends Component {
constructor () {
    super()
    this.state = {
    banners: []
  }
}
render () {
return (
<Fragment>
            <div className = "swiper-container">
            <div className = "swiper-wrapper">
  {
            this.state.banners.map( ( item,index ) => {
            return <SwiperItem item = {item} key = { item.id }></SwiperItem>
  })
}
    </div>
            <div className = "swiper-pagination"></div>
            <div className = "swiper-button-prev"></div>
            <div className = "swiper-button-next"></div>
            <div className = "swiper-scrollbar"></div>
   </div>
</Fragment>
)
}
componentDidMount () {
    fetch('/data.json')
    .then ( res => res.json() )
    .then ( data => {
    this.setState({
    banners: data
})
setTimeout ( () => {
        this.swiper = new Swiper ('.swiper-container', {
        loop: true, // 循环模式选项
        // 如果需要分页器
        pagination: {
        el: '.swiper-pagination',
        },
        // 如果需要前进后退按钮
        navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
        },
        // 如果需要滚动条
        scrollbar: {
        el: '.swiper-scrollbar',
     },
  })
},0)
})
.catch ( error => {
   if (error) throw error
})
}
shouldComponentUpdate () {
if ( this.swiper ) {
     return false
     }else {
     return true
  }
}
componentDidUpdate () {
// 第一中方案 只要有数据变化, 那么这个钩子函数就要执行, 那么this.swiper就会重复实例化
/*
this.swiper = new Swiper ('.swiper-container', {
loop: true, // 循环模式选项
// 如果需要分页器
pagination: {
el: '.swiper-pagination',
},
// 如果需要前进后退按钮
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
// 如果需要滚动条
scrollbar: {
el: '.swiper-scrollbar',
},
})
*/
}
}
export default SwiperComponent

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值