(React) 시간 출력

React로 시간 출력

리액트를 이용해 현재 시간을 보여주는 페이지를 생성해보자.

클래스 생성, 구성
class Clock extends React.Component {
    render() {
        return (
            <div>
                <h1>Current Time</h1>
                <h2>It's {this.state.date.toLocaleTimeString()}</h2>
            </div>
        )
    }
}

Clock이란 이름의 리액트 컴포넌트 클래스를 생성.

render() 메서드를 생성해 표현할 내용을 구성한다.

시간표현은 상태객체를 이용해this.state.date.toLocaleTimeString() 로 작성한다.

상태 조정

Clock 클래스에 생성자를 추가해 상태를 초기화 한다.

class Clock extends React.Component {
	// 생성자 추가
    constructor(props) {
        super(props)
        this.state = {date: new Date()}
    }

    render() {
        return (
            <div>
                <h1>Current Time</h1>
                <h2>It's {this.state.date.toLocaleTimeString()}</h2>
            </div>
        )
    }
}

위 생성자는 상태의 date를 새로운 Date객체로 초기화 시켜준다.

Clock 클래스를 렌더링 할 때마다 새로운 시간을 나타내게 해준다.

클래스 컴포넌트는 항상 props (속성)을 이용해 생성자를 불러와야 한다.

렌더링

Clock 클래스를 페이지에 렌더링한다.

ReactDOM.render(
	<Clock />,
	document.getElementById('content')
)
최종 코드
class Clock extends React.Component {
    constructor(props) {
        super(props)
        this.state = {date: new Date()}
    }

    render() {
        return (
            <div>
                <h1>Current Time</h1>
                <h2>It's {this.state.date.toLocaleTimeString()}</h2>
            </div>
        )
    }
}

ReactDOM.render(
    <Clock />,
    document.getElementById('content')
)

이렇게 현재 시각을 알려주는 페이지를 생성할 수 있다.

하지만 지금의 페이지는 자동으로 변하는 시간을 갱신해 주지 않는다는 단점이 있다.

실시간으로 시간을 갱신하기 위해서는 라이프사이클을 이용해야한다.

다음에는 자동으로 갱신되는 시계를 생성해보자.