Component == JS에서의 함수
import React, { Component } from 'react';
class App extends Component {
render() {
const name = '리액트';
return <div>{name}</div>;
}
}
export default App;
JSX: 리액트에서 생김새 정의할 때 쓰이는 문법
HTML처럼 생겼지만 JS다!
return <div>안녕하세요</div>;
import React from 'react';
function App() {
const name = '리액트';
return <div>{name}</div>;
}
export default App;
function BlackDog() {
this.name = '흰둥이';
return {
name: '검둥이',
bark: function() {
console.log(this.name + ': 멍멍!');
}
}
}
const blackDog = new Blackdog();
blackDog.bark(); // 검둥이: 멍멍!
function WhiteDog() {
this.name = '흰둥이';
return {
name: '검둥이',
bark: () => {
console.log(this.name + ': 멍멍!');
}
}
}
const whiteDog = new Whitedog();
whiteDog.bark(); // 흰둥이: 멍멍!
: properties의 줄임말
import React from 'react';
import MyComponent from './MyComponent';
const App = () => {
return <MyComponent name="리액트"></MyComponent>;
}
export default App;
// MyComponent.js
import React from 'react';
import PropTypes from 'prop-types';
const MyComponent = ({name}) => {
return (
<div>제 이름은 {name}입니다.</div>
);
};
MyComponent.propTypes = {
name: PropTypes.string
};
export default MyComponent;
여기서는 name이 props가 된다
: props와 달리 내부에서 바뀔 수 있는 값
클래스형 컴포넌트
함수형 컴포넌트
공통적으로 둘 다 setter 함수로 state값을 조작한다
import React, { Component } from 'react';
class Counter extends Component {
constructor(props) {
super(props);
this.state = {
number: 0
};
}
render() {
const { number } = this.state; // state 를 조회할 때에는 this.state 로 조회합니다.
return (
<div>
<h1>{number}</h1>
<button
// onClick 을 통하여 버튼이 클릭됐을 때 호출 할 함수를 지정합니다.
onClick={() => {
// this.setState를 사용하여 state에 새로운 값을 넣을 수 있습니다.
this.setState({ number: number + 1 });
}}
>
+1
</button>
</div>
);
}
}
export default Counter;
클래스형