리액트 공식문서 State

고규식·2021년 12월 13일
0
post-thumbnail

1. State

2. ClassComponent

import React, { Component } from 'react';

class ClassComponent extends Component {
  constructor(props) {
    super(props);
    this.state = { date: new Date() };
  }

  componentDidMount() {
    this.timerID = setInterval(() => this.tick(), 1000);
  }

  componentWillUnmount() {
    clearInterval(this.timerID);
  }

  tick() {
    this.setState({
      date: new Date(),
    });
  }

  render() {
    return (
      <div>
        <h1>Hello, world! It's ClassComponenet</h1>
        <h2>It is {this.state.date.toLocaleTimeString()}.</h2>
      </div>
    );
  }
}

export default ClassComponent;

3. FunctionalComponent

import React, { useState, useEffect } from 'react';

export default function FunctionalComponent() {
  const [date, setDate] = useState(new Date());
  const tick = () => {
    setDate(new Date());
  };
  useEffect(() => {
    const interval = setInterval(() => tick(), 1000);

    return () => {
      clearInterval(interval);
    };
  }, []);

  return (
    <div>
      <h1>Hello, world! It's FunctionalComponent</h1>
      <h2>It is {date.toLocaleTimeString()}.</h2>
    </div>
  );
}

profile
잠실사는 주니어 개발자

0개의 댓글