UI(user interface)를 위한 JavaScript기반의 라이브러리 이다.
말그대로 리엑트는 UI 요소를 위한 라이브러리 이며,
render()
를 이용해서 UI요소를 구성하고,
Component 를 만들어서 UI 요소를 재사용 할 수 있다.
react는 DOM, Event 를 대체 하기 위해서 나타난 것으로
HTML 파일에 JavaScript파일을 연결해서 동적인 요소를 추가하는 방식으로
JavaScript 파일에
const commentBarContent = document.querySelector(".commentBarContent"); const commentBarPostbtn = document.querySelector(".commentBarPostbtn"); const comment = document.querySelector(".comment"); const articlediv = document.querySelector(".article"); const descriptionBar = document.querySelector(".descriptionBar"); commentBarPostbtn.addEventListener("click", addComment); function addComment() { const addCommentPtag = document.createElement("p"); addCommentPtag.innerHTML = commentBarContent.value; comment.appendChild(addCommentPtag); }
React 에서는
import React, {Component} form 'react'; class AddElement extends Component { render() { return ( <p> {this.state.content} </p> ); } } export default AddElement;
초기 React 폴더 셋팅
mkdir react-directory
cd react-directory
create-react-app .
경로가 react 폴더로 바뀌면서 react 관련 파일들이 생성됨
public/index.html 파일에 head에 들어갈 정보를 넣는다
<html lang="en"> <head> <meta charset="utf-8" /> <title>React App</title> </head> <body> <div id="root"></div> </body> </html>
src/index.js에 원하는 최상위 component를 지정해준다
<컴포넌트명 />
이다<div id="root"></div>
의 위치에 <컴포넌트 />
를 그려달라는 명령어(render)를 추가한다import React from "react"; import ReactDOM from "react-dom"; import App from "./App"; ReactDOM.render(<App />, document.getElementById("root"));
원하는 component를 계속 붙여 나가면 된다.
import React, {Component} 'react'; import Content1 from "./components/Content1"; import Content2 from "./components/Content2"; class Contents extends Component { render() { return( <Content1 /> <Content2 /> ); } } export default Contents;
component 만드는 방법
jsx를 사용하기 위해서 react 를 import 해줘야 하는데
방법 1은 나중에 component 를 사용할 때 React.Component 로 사용 해야 되고,
방법 2는 Component 라고 쓰고 사용 해도 된다.
방법1
import React form 'react';
방법2
import React, {Component} form 'react';
html 요소를 추가 하기 위해서 render 함수를 사용해야 되는데, class를 사용해도 되고, 함수를 사용해도 된다.
함수를 사용한 방법과 클래스를 사용한 방법의 차이로는
예전에 클래스에서만 state
와 lifecycle
을 사용 할 수 있었는데, 지금은 hook 이라는게 나와서 함수에서도 사용이 가능 하다고 한다.
요즘은 편리한 arrow 함수를 많이 사용한다고 함
방법1
class 컴포넌트명 extends Component { render() { return ( html 요소를 작성 ); } }
방법2
컴포넌트명( () => { render() { return( html 요소를 작성 ); } });
만든 component 를 사용하기 위해서는 export 를 해줘야 한다.
export default 컴포넌트명;
이렇게 추가하면 하나의 component 가 완성되는데, 주의 할점은
컴포넌트명을 정할때 앞글자가 대문자여야한다.