더북(TheBook)

jQuery 이벤트에서 window로 이벤트를 전달하고, React 컴포넌트 라이프사이클 이벤트에서 window에 이벤트 리스너를 연결하는 방식으로 구현할 수 있다. 다음 예제 코드에서 SliderValue 컴포넌트(ch06/slider/jsx/slider-value.jsx)를 살펴보자.

 

예제 코드 6.15 window를 이용한 jQuery 플러그인과의 통합

class SliderValue extends React.Component {
    constructor(props) {
        super(props)
        this.handleSlide = this.handleSlide.bind(this)
        this.state = {sliderValue: 0}
    }
    handleSlide(event) {
        this.setState({sliderValue: event.detail.ui.value})
    }
    componentDidMount() {
        window.addEventListener('slide', this.handleSlide) ---- handleSlide( )를 실행하도록 slide 이벤트 리스너를 window 객체에 연결한다.
    }
    componentWillUnmount() {
        window.removeEventListener('slide', this.handleSlide) ---- DOM 노드가 없어진 후 이벤트 핸들러로 인해 메모리 누수가 발생하지 않도록 window의 slide 이벤트에 대한 연결을 제거한다.
    }
    render() {
        return <div className="" >
            Value: {this.state.sliderValue}
        </div>
    }
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.