> For the complete documentation index, see [llms.txt](https://pasahu1805.gitbook.io/react-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pasahu1805.gitbook.io/react-1/master.md).

# React

사용자 인터페이스를 만들기 위한 javaSscript 라이브러리

## 1.Node.js

{% embed url="<https://nodejs.org/ko/>" %}

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MNb6c5g-AYR_O5Un1z4%2F-MNb6gaB7ilObenEbiQh%2Fimage.png?alt=media\&token=c5ffac8d-7d0f-4331-9f4e-9e56b8c27d2e)

### 학원용(node-v13.14.0-x64.msi)

{% embed url="<https://nodejs.org/download/release/v13.14.0/>" %}

#### 버전이랑 체크하기&#x20;

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MNbNqGM0Tvr7EdOtZh3%2F-MNbU8d6LC0TvZm-VNIy%2Fimage.png?alt=media\&token=bf412476-1b43-44ac-8cda-69c67b1afaee)

## 2.npm 설치

노드 패키지 매니저(npm)

```
npm -v
```

### zeplin 설치

{% embed url="<https://zeplin.io/>" %}

## 3.React Developer Tools 설치(크롬앱스토어)

## 4.git 설치

{% embed url="<https://git-scm.com/>" %}

## 5.리액트 앱 만들기

명령 프롬프트를 이용하여 현재 만들고 싶은 폴더로 이동합니다.

```
npx create-react-app portfolio
```

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MNbU9qqldZwf9pgg4yv%2F-MNbUV0IMKwazZ4supjh%2Fimage.png?alt=media\&token=51ca9f14-8064-4e27-8e29-a66a825b9195)

## 6. 기본 셋팅하기

### App.js

```jsx
import React from 'react';

function App(){
  return <h1>Hello</h1>
}

export default App;
```

### index.js

```jsx
import React from 'react';
import ReactDom from 'react-dom';
import App from './App';

ReactDom.render(<App />, document.getElementById('root'));
```

### index

```jsx
<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="utf-8" />
    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta name="description" content="Web site created using create react Portfolio"/>
    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
    <title>React Portfolio</title>
  </head>
  <body>
    <div id="root"></div> 
  </body>
</html>

```

## 7. 컴퍼넌트 만들기

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MNgPv3_yUuchKrJxsID%2F-MNgbunaYkXjBlXtwz3l%2Fimage.png?alt=media\&token=a6018978-3580-4148-8063-dbc0bc69e456)

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MNgbw2NI2vyCMCAk-Ls%2F-MNgcMVGsa_tuQQlA5xR%2Fimage.png?alt=media\&token=264d0581-9873-453c-8abb-b91bea24c2c7)

### Visual Studio Code 에 복붙

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MNgbw2NI2vyCMCAk-Ls%2F-MNgcUVhMOFJLsoflQCs%2Fimage.png?alt=media\&token=a3a06cfa-77e1-4e62-aa18-fd32343c1256)

## 8. props 개념 익히기

## 9. 라우터 만들기

리액트는 싱글 페이지로 구성되어 있기 때문에 가상의 주소를 만들어 주어야 합니다. 라우터를 이용하여 URL을 통해 특정 컴퍼넌트를 불러와서 사이트를 구성할 것입니다. 우선 react-router-dom 패키지를 설치합니다.

```jsx
npm install react-router-dom
```

```jsx
import React from 'react';
import Main from './routes/Main';
import About from './routes/About';
import Reference from './routes/Reference';
import Script from './routes/Script';
import Animation from './routes/Animation';
import Site from './routes/Site';
import Contact from './routes/Contact';
import Header from './components/Header';
import { HashRouter, Route} from 'react-router-dom';

function App(){
  return (
    <HashRouter>
      <Header />
      <Route path="/" exact={true} component={Main} ></Route>
      <Route path="/about" component={About} ></Route>
      <Route path="/reference" component={Reference} ></Route>
      <Route path="/script" component={Script} ></Route>
      <Route path="/animation" component={Animation} ></Route>
      <Route path="/site" component={Site} ></Route>
      <Route path="/contact" component={Contact} ></Route>
    </HashRouter>
  )
}

export default App;

/* 
라우터를 연동하여 주소를 만들어줍니다.
App.js 에 import 해줍니다.
```

![src폴더 routes 폴더를 만들어 7가지의 js 만들기](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MNvBkMrqP8W7jdbC5qL%2F-MNvBu_QrF50Hf7bseBD%2Fimage.png?alt=media\&token=6a65712f-07b0-48bb-9dc5-687617c6b91d)

## 10. scss 설치하기

```jsx
npm install node-sass
```

```jsx
npm uninstall node-sass // 버전 호환 안될시 삭제후 재설
npm install node-sass@4.14.1
```

## 11.npm install axios 설치하기

```jsx
npm install axios
```

## 12.vue 설치하기

```jsx
npm i -g @vue/cli
```

### 명령 프롬프트 사용하여 설

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MOZuXwWcnJ5MDqN2zi5%2F-MOZv4DoQNxa9pJ37W5X%2Fimage.png?alt=media\&token=7bd3331b-ad2c-4683-99f0-a634e7e83b0f)

```jsx
vue create _______
```

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MOZyXRbEL4fV-wI8WjV%2F-MO_0hY7WbYQ6pC5BEh1%2Fimage.png?alt=media\&token=997d2cd2-7870-4b68-849b-5bbac4e1f160)

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MO_6i8CKo0rS-YQyaFo%2F-MO_6pAvqqAQDNoGIp2H%2Fimage.png?alt=media\&token=97ce0915-82ad-49bb-b3d3-d8a221d8c364)

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MO_6YKHjsFeSYLhF_2b%2F-MO_6g5M7Sudh0b0FEQW%2Fimage.png?alt=media\&token=206a68d2-d791-4e2a-b222-fd320e9eea9c)

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MO_6YKHjsFeSYLhF_2b%2F-MO_6aw5kk161rd1B5Zm%2Fimage.png?alt=media\&token=8cfb6922-9109-41d7-af08-a03c84cfaa73)

![](https://1124234861-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNb3RSFtsNdZhoyn2mM%2F-MO_0j-r2_l3RHZ-tUaY%2F-MO_6UQ2zmINseFBBuCu%2Fimage.png?alt=media\&token=78aa0e2e-7099-40e8-91d3-d85f7d79b073)

## firebase 배

Visual Studio =>  Task Explorer 다운

TERMINAL , 명령프롬프트 사용

```jsx
npm install -g firebase-tools

firebase login -> Y

firebase init -> Y -> Hosting -> use an existing project -> vue900.class -> dist -> N -> N
firebase init -> Y -> Hosting -> use an existing project -> react999.class -> build -> N -> N
```
