# 변수 이용

App.css

1
2
3
4
5
6
7
8
...생략
.list{
  margin-top:30px;
  text-align:left;
  padding-left:20px;
  padding-right:20px;
}
...생략
cs

 

 

 

 

App.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import logo from './logo.svg';
import './App.css';
 
function App() {
  let posts = '강남 고기 맛집';
  return (
    <div className="App">
     <div className="black-nav">
      <div>개발 Blog</div>
     </div>
     <div className='list'>
      <h3>{posts}</h3>
      <p>11월 16일 발행</p>
      <hr/>
     </div>
    </div>
  );
}
 
export default App;
 
 
cs

 

▲ 결과!!

 

 

 

 

 

 

 

 

 

# useState 를 이용

state

1. 변수 대신 쓰는 데이터 저장공간

2. useState() 를 이용해 만들어야함.

3. 문자, 숫자, array, object 다 저장가능

 

state 에 데이터 저장하는 이유 : 웹이 App 처럼 동작하도록 하게 하려고.

state 는 변경되면 HTML 이 자동으로 재렌더링이 됨.

그냥 변수는 변경되어도 자동 재렌더링이 안됨.

 

이게 무슨말이냐면, 변수 사용시 let a = '가' 이게 a = '나' 로 변경하면, 사이트를 새로고침해야 재반영 되는데

state를 사용하면 새로고침 하지 않고도 화면이 변경된다는 얘기다. 이게 Web-app 의 장점!!

자주 바뀌는, 중요한 데이터는 변수가 아닌 state 로 사용하면 좋다.

 

 

 

 

App.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import React, {useState} from 'react';
import logo from './logo.svg';
import './App.css';
 
function App() {
 
  let [글제목1,글제목변경1] = useState('가요 인기 순위'); // 글제목='가요 인기 순위', 글제목변경='가요 인기 순위'를 변경하는 함수
  let [글제목2,글제목변경2] = useState('화장품 브랜드 순위'); 
  let [글제목3,글제목변경3] = useState('패딩 인기 순위');
 
  return (
    <div className="App">
     <div className="black-nav">
      <div>개발 Blog</div>
     </div>
     <div className='list'>
      <h3>{글제목1}</h3>
      <p>11월 16일 발행</p>
      <hr/>
     </div>
     <div className='list'>
      <h3>{글제목2}</h3>
      <p>11월 16일 발행</p>
      <hr/>
     </div>
     <div className='list'>
      <h3>{글제목3}</h3>
      <p>11월 16일 발행</p>
      <hr/>
     </div>
    </div>
  );
}
 
export default App;
 
 
cs

 

 

▲ 결과!!

HTML 에서는 <div class='clsname'></div> 이렇게 쓰지만, React 로 만드는 .js 파일은 JSX문법을 써야하므로

class='' 가 아닌 <div className='clsname'></div> 를 써야한다.

 

App.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import logo from './logo.svg';
import './App.css';
 
function App() {
  return (
    <div className="App">
     <div className="black-nav">
      <div>개발 Blog</div>
     </div>
    </div>
  );
}
 
export default App;
 
 
cs

 

 

 

 

 

 

 

App.css

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.App {
  text-align: center;
}
body {
  font-family : 'nanumsquare';
}
.black-nav{
  background : black;
  width : 100%;
  display: flex;
  color : white;
  padding : 20px;
  font-weight: 600;
  font-size:20px;
}
.App-logo {
  height: 40vmin;
  pointer-events: none;
}
...생략
 
cs

 

▲ 결과!!

 

 

 

 

 

 

 

 

 

 

App.js

1
2
3
4
5
6
7
8
9
10
11
12
13
...생략
function App() {
  let variable = '요건 변수야!';
  return (
    <div className="App">
     <div className="black-nav">
      <div>개발 Blog</div>
     </div>
     <h4>{variable}</h4>
    </div>
  );
}
...생략
cs

React 에서 데이터 바인딩을 하려면 { } 중괄호 사이에 변수명, 함수 등을 넣으면 된다.

 

▲ 결과!!

 

{} 는 <div className={}> , <img src={}>, {} 등 다양하게 사용 가능하다!!

 

 

 

 

 

 

 

 

 

 

 

# CSS 적용 방법

 

1
<div style={{color : 'blue', fontSize : '30px'}}>개발 Blog</div>
cs

HTML 에서는 style="color:blue; font-size:30px;" 이런 식으로 썼다면,

JSX 에서는 {} 안에 object 형식으로 써야한다. 또한 font-size 에서의 - 기호는 사용하지 못하고,

카멜표기법인 fontSize 로 사용해야 한다.

https://nodejs.org/en/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

사이트 접속해서 제일 최신 버전 다운로드 !

 

 

https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

편집기는 Visual Studio Code 를 이용할 것이므로 사이트 접속 후 다운로드 !

 

 

 

원하는 경로에 원하는 폴더명으로 생성 한다. 저는 React Class 로 했습니다.

 

 

Visual Studio Code 를 열고 File > Open Folder 를 통해 위에서 만든 폴더를 열어줍니다.

 

 

리액트 프로젝트 생성을 위해 Terminal > New Terminal 을 통해 새 터미널 창을 엽니다.

 

 

터미널 창에 npx create-react-app blog 입력 

blog = 생성할 프로젝트 명

npx create-react-app = 리액트 셋팅이 다 된 boilerplate 만들기 쉽게 도와주는 라이브러리

 

# # ['npx' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다] 오류가 발생했다면! ##

Ctrl + Shift + P 를 눌러 검색창을 띄운후 terminal: select default profile 를 검색.

 

Command Prompt 로 설정하고 Visual Studio Code 를 종료했다가 다시 열어주면 된다. 그리고 다시 npx~~ 입력!

 

 

 

 

y 를 입력하라하면 y 입력 후 설치가 완료된다.

 

 

설치가 완료됐으면 File > Open Folder 해서 위에서 만들어준 폴더를 다시 선택해준다.

그럼 이제 코딩 할 준비 완료

 

 

터미널 창 하나를 띄워주고, 이렇게 나와야 정상적으로 된것이다.

 

 

터미널 창에 npm start 를 해서 미리보기를 띄워보자.

브라우저가 자동으로 열리면 해당 창이 뜰 것이다.

브라우저가 자동으로 안열리면 크롬 브라우저 설치 바람!

 

 

App.js > 메인페이지에 들어갈 HTML 을 쓰는곳

 

public > index.html 이 메인페이지

 

App.js 를 index.html 에서 그려준다.

 

node_modules : 라이브러리 모은 폴더

public : static 파일 보관함

src : 소스코드 보관함

package.json : 설치한 라이브러리 목록, npm 으로 설치할때마다 여기 기록됨

 

 

winmerge 다운로드

 

Download WinMerge - WinMerge

Download WinMerge The easiest way to install WinMerge is to download and run the Installer. Read the online manual for help using it. WinMerge 2.16.22 The current WinMerge version is 2.16.22 and was released at 2022-07-27. For detailed info on what is new,

winmerge.org

 

winmerge 는 이전 소스와 내가 작업한 소스를 비교할 수 있는 툴이다.

 

이 툴을 이용해 이클립스 SVN 을 사용할때 아래와 같이 설정하면 된다.

 

 

Window > Preferences > Team > SVN > Diff Viewer > Add

 

Extension or mine-type : *

Program Path : winmerge 가 설치된 경로의 실행 파일 선택

Diff program arguments : "${base}" "${mine}"

Merge program arguments : "${base}" "${mine}"

 

해주면 끝~

 

 

 

+ Recent posts