본문 바로가기
프로그래밍/React

[React] 강좌 정리 및 초반 설정

by CaffeLatte 2019. 11. 2.

Babel
- 최신/실험적인 문법을 사용할 수 있게 해줌
- ES2015+ 문법을 사용한 코드를 예전 ES5 자바스크립트 코드로 바꿔주는 도구

JSX
- JS + XML

setState
- 비동기 함수
- 예전 값으로 새로운 값을 만들 때는 setState의 인자로 함수를 사용하기

Hooks
- 함수에서도 setState나 ref를 사용할 수 있도록 한 것이 Hooks
- const [value, setValue] = React.useState();
- const ref = React.useRef();

Webpack
- 여러 개의 js파일을 한번에 합쳐서 하나의 js파일로 만들어줌

Node
- js 실행기

개발 설정
- 폴더를 하나 선택

- npm init
: 완료되면 package.json이 생성됨

- npm i react react-dom
: 리액트 개발에 필요한 것완료되면 package

- npm i -D webpack webpack-cli
(-D는 개발용으로 사용할 때. package.json에 devDependencies에 추가됨)

- npm i -D @babel/core
기본적인 babel 최신문법 바꿔줌

- npm i -D @babel/preset-env
최신문법을 브라우저에 맞는 문법으로 변환해줌

- npm i -D @babel/preset-react
jsx 지원

- npm i -D babel-loader
babel과 webpack을 연결해줌

- npm i -D @babel/plugin-proposal-class-properties
@babel/plugin-proposal-class-properties class의 state={} 문법을 사용하려면 추가

- webpack.config.js 파일 추가하고 아래 작성

const path = require('path');
module.exports = {
  name: 'react-project',
  mode: 'development', // 실서비스: production
  devtool: 'eval', // 빠르게 하겠다
  resolve: {
    extensions: ['.js', '.jsx'] // webpack이 js나 jsx를 찾아서 output의 filename(app.js)으로 만들어줌
  },
  entry: { // 중요
    app: ['./index'] // app.js이라는 이름이 여기서 정해짐
  }, // 입력
  module: {
    rules: [{ // 여러개의 규칙을 적용
      test: /\.(js|jsx)$/i, // 뒤에 .js나 .jsx가 대소문자 구분해서 붙어 있는지 확인
      loader: 'babel-loader', // babel을 적용해서 이전 브라우저에서도 최신문법을 적용할 수 있게 해줌
      options: {
        presets: ['@babel/preset-env', '@babel/preset-react'],
        plugins: ['@babel/plugin-proposal-class-properties'] // jsx파일에서 state = {} 사용시 필요
      }
    }]
  },
  output: { // 중요
    path: path.join(__dirname, 'dist'), // output으로 나올 파일이 저장될 경로, C:\..\프로젝트폴더\dist를 자동으로 만들어줌
    filename: 'app.js',
  }, // 출력
};

 

- index.html 파일에 기본설정

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>타이틀</title>
</head>
<body>
  <div id="root"></div>
  <script src="./dist/app.js">
</script>
</body>
</html>

 

- client.jsx 파일 추가하고 아래 작성

const React = require('react');
const ReactDom = require('react-dom');
const 쪼갤클래스나함수이름 = require('파일경로');
ReactDom.render(<쪼갤클래스나함수이름 />, document.querySelectors('#root'));

 

파일 쪼개기
- 개발설정에서 추가한 client.jsx 파일에서 class나 함수를 계속 추가하면 관리에 어려움이 있으니 파일을 쪼개보자
- 쪼갤클래스나함수이름.jsx

const React = require('react');
const { Component } = React; // 쪼갠 파일에서 필요한 package나 library를 가져오는 부분
class 쪼갤클래스나함수이름 extends Component {
  state = {
  }
  render() {
  }
}
module.exports = 쪼갤클래스나함수이름; // 쪼갠 파일을 다른 곳에서도 사용할 수 있게 해주는 node의 모듈시스템
이탤릭채로 된 부분을 추가해주어야 함

'프로그래밍 > React' 카테고리의 다른 글

[React] Editor 선정하기  (0) 2021.08.22
[React] Webpack CSS 설정 추가하기  (0) 2020.12.20
[React] immutable Failed to compile  (0) 2020.11.18
[React] 기초 정리  (0) 2020.02.22
[React] Webpack 자동 빌드  (0) 2019.11.27

댓글