내가 특정한 조건에서 무언가 화면에 보이게 만들고 싶을때 어떻게 해야 할까요?

리액트에서는 이렇게 합니다.

먼저 Hello.js를 다음과 같이 코딩해줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
import React from 'react';
 
function Hello({ trueAndFalse }) {
 
    return (
        <div>
            {trueAndFalse ? <b>!!</b> : null}
           안녕리액트
        </div>
    );
}
 
export default Hello;
cs

여기서 킵 포인트는 trueAndFalse인데요.  

삼항연산자를 사용하여 {trueAndFalse ? <b>!!</b> : null}이렇게 표현해 줍니다.

만약 trueAndFalse가 true이면 <b>!!</b>

false이면 null이 응답될것입니다. 

 

그런데 우리가 값이  true만 나올것이라고 생각한다면 이렇게 하면 됩니다.

{trueAndFalse &&<b>!!</b> }이렇게 하면 true일때만 이 값이 나오게 해라라는 의미로 사용가능합니다.

 

다음 App.js에 다음과 같이 코딩합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
import React from 'react';
import Hello from './Hello'
 
function App() {
 
  return (
    <div >
      <Hello name="안녕안녕" trueAndFalse={true/>
    </div>
  );
}
 
export default App;
cs

trueAndFalse={true} 이 부분이 핵심입니다. 

이 부분을 통해서 갑니다. 참고로 {true}부분을 지워도 상과없습니다.

그러면 trueAndFalse의 기본값은 true이기 때문입니다.

우리가 출력하면 다음과 같은 값을 얻을 수 있습니다.

false하면 !!가 붙지 않을 것입니다. 

 

이것을 활용하는 방법은 이제나중에 서버랑 연결했을때 만약 서버에서특정값을 보내준다면

그것이 true냐 false냐 값을 생각해서 출력해 줄 수 있을 것입니다. 

사용 방법에 따라 여러가지 다양한 효과를 낼 수 있게 되는 것이죠

 

다음 시간에는 리액트의 가장 중요한 기능중에 하나인 상태를 다루는 방법을 알아보도록 하겠습니다.

'리액트' 카테고리의 다른 글

React - 컴포넌트 만들기  (0) 2020.07.29
React- 프로젝트 만들기  (0) 2020.07.28

리액트는 컴포넌트라는 조각들로 웹페이지를 조립 할 수 있기 때문입니다.

그러면 한번 컴포넌트를 만들어보겠습니다. 

먼저 Hello.js라는 파일을 만들어줍니다. 

여기서 중요한것은 파일 이름 시작은 대문자로 해야 합니다. 

이렇게 만들고 나서 기본적인 리액트 코드 틀을 만들어 줍니다.

 

1
2
3
4
5
6
7
8
9
10
11
import React from 'react'//리액트를 임포트 시켜줍니다.
 
function Hello(){//우리는 함수형으로 만들겁니다. 여긴 파일이름과 동일하게 해주세요.
    return(
        <div>//이 부분을 프레그넌트라고 부릅니다.
           {/*여기에 내용을 집어 넣습니다. */ }
안녕 리액트
        </div>
    );
}
 
export default Hello;//우리가 만든 컴포넌트를 밖으로 내보내 줍니다.

cs

추가 설명으로 return 안에 들어있는 html태그를 jsx라고 부릅니다.

쉽게 설명해서  바벨이라는 것이 여기에 사용된  자바스크립트를 html태그로 바꿔줍니다.

결국 return안에 들어 있는건 자바스트라고 보셔야해요.

그리고 2개 이상의 태그를 사용할때는 프래그넌트라는 것을 사용해서 표현해야합니다.

그런데 div태그로 구지 만들필요는 없구요.

<></>이렇게 만드시고 사용하셔도 됩니다.

 

그리고 프레그넌트 안에 주석 다는 것과 우리가 함수를 쓰는 부분의 주석을 처리 하는 방법이 달라요.

자바스크립트 주석은 "//주석내용" 이고 프레그넌트는{/*주석 내용*/} 입니다.

그리고 html태그 같이 생긴것 안에  주석을 넣으려면 <div /*주석내용*/>요렇게 써주시면되겠습니다.

 

우리는 한번 내용을 써볼께요 안녕리액트라고 써보겠습니다.

그리고 App.js로 이동합니다. 그리고 안에 있는 내용을 다음과 같이 수정하세요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import React from 'react';
import Hello from './Hello';//여기는 우리가 만든 컴포넌트를 import 시켜야 불러올수 있어요
 
 
function App() {
 
  return (
    <div >
      <Hello />//우리가 만든 리액트를 컴포넌트를 이렇게 추가시켜줍니다.
    </div>
  );
}
 
export default App;
cs
 
그다음 터미널에 yarn start 를 실행하면 화면에 이렇게 나옵니다.

만약 컴포넌트를 여러개 추가시키면

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import React from 'react';
import Hello from './Hello';
 
 
function App() {
 
  return (
    <div >
      <Hello />
      <Hello />
      <Hello />
    </div>
  );
}
 
export default App;
cs

 

위의 화면과 같이 나오게 될겁니다.

리액트가 프레그넌트를 조각처럼 사용한다는 사실을 알수 있는 부분이지요.

따로따로css를 주는 것도 가능합니다. 한번 해볼까요? 

다시 Hello.js로 이동해서 다음과 같이 코딩해줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import React from 'react';
 
function Hello({name,color}){
   const style={
        color:color
    }
    return(
        <div style={style}>
           안녕리액트 {name}
        </div>
    );
}
 
export default Hello;
cs

여기서 function Hello({name,color})부분의 {}안에 있는 값은 원래는 props로 해주어야합니다.

그리고

<div style={style}>

      안녕리액트 {name}

  </div>

여기서 name은 props.name이라고 해야하는게 정상인데요

function Hello({name,color})이렇게 하면 ES6문법중에 하나인 구조분해문법이 적용되어서

{name}과 같이 써줄수 있습니다. 참고하세요.

그리고 다시 App.js로 이동해서 다음과 같이 작성해줍니다.

 

colorscripter.com/info#e"

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import React from 'react';
import Hello from './Hello';
 
 
function App() {
 
  return (
    <div >
      <Hello name ="Hello react" color="red"/>
      <Hello name ="Hello react" color="blue"/>
      <Hello  color="green"/>
    </div>
  );
}
 
export default App;
cs

이렇게 하면 다음과 같은 결과가 나옵니다.

 

위에서 보는 바와 같이 넘겨주는 값이 없으면 나오지 않으니 참고하세요.

 

그리고 기능중에 chlidren이란 기능도 있습니다. 한번 Wrapper.js를 만들어주세요.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import React from 'react';
 
function Wrapper() {
    const style = {
        border: '2px solid black',
        padding: 16
    };
    return (
        <div >
            <div style={style}></div>
        </div>
    );
}
 
export default Wrapper;
cs

그다음 App.js에 Wrapper.js를 import시켜줍니다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import React from 'react';
import Hello from './Hello';
import Wrapper from './Wrapper';
 
 
function App() {
 
  return (
    <div >
      <Wrapper>
      <Hello name ="Hello react" color="red"/>
      <Hello name ="Hello react" color="blue"/>
      <Hello  color="green"/>
      </Wrapper>
    </div>
  );
}
 
export default App;
cs

그려면 다음과 같은 결과가 나올겁니다.

우리가 앞서 만든 컴포넌트들이 다 사라졌습니다. 정확히 Wrapper.js가 뒤덮어 버렸죠. 

이럴때 우리는 wapper컴포넌트에 children이라는 props를 다음과 같이 추가시켜줍니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import React from 'react';
 
function Wrapper({children}) {
    const style = {
        border: '2px solid black',
        padding: 16
    };
    return (
        <div >
            <div style={style}>{children}</div>
        </div>
    );
}
 
export default Wrapper;
 
 
cs

그러면 이렇게 나와요.

<Wrapper></Wrapper>태그 안에 우리가 썻던 <Hello ... />내용이 위로 올라 갈 수 있도록 해줄 수 있습니다.

 

오늘은 컴포넌트를 다루는 법에 대해서 알아봤습니다.

다음시간에는 조건을 주어서 랜더링을 하는 방법에 대해서 알아보겠습니다.

'리액트' 카테고리의 다른 글

React - 조건부 랜더링 하기  (0) 2020.07.30
React- 프로젝트 만들기  (0) 2020.07.28

리액트 프로젝트 시작`~~~~

목표는 리액트로 todoList만들 수 있을 때까지 해볼까합니다.

리액트로  todolist만들면 정말 기초적인 기능은 다 할 수 있다고 생각해도 됩니다.

 

오늘은 첫 시간으로 프로젝트 만들기 

 

os는 windows10을 사용할껍니다.

먼저 준비물~~

<필수 준비물>

1.node.js : https://nodejs.org/ko/

필수 필수 필수~~~ 버전은 최신 버전보다 LTS버전을 사용하시는걸 추천합니다.

 

Node.js

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

nodejs.org

2.EDI :개발툴입니다. 이클립스, 아톰, 인텔리제이, 등등이 있는데 우리는 visual Studio code를 사용할 거예요.

쓰기 편한거 쓰시면 되요(우리는 visual Studio code를  vscode로 부를겁니다.)

vscode :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

솔직히 요것만 있으면 되는데.... 

그래도 좀더 편하게 하기 위해서 몇가지를 더 설치할거예요.

<편의성을 위해서 설치하자>

1. git for windows

요게 있어야 좀더 편하게 프로젝트를 받아올수 있어요.

뭐 요즘  윈도우에 powershell인가 있어서 사용 가능 하긴 한데 기능적인 면이나

뽀대(상당히 컬러 컬러해요) 

다운로드는 여기서 : https://git-scm.com/

 

Git

 

git-scm.com

2.yarn

이건 정말 깔아도 되고 안깔아도 되요. 우리가 나중에  패키지를 받아올때 npm 명령어를 써서 받아 와야 하는데

yarn을 쓰면 더 빠르고 명령어도 더 간결해서 사용하기 좋아요. 개인적으로는 강추 강추(없어도되요)

다운로드:https://classic.yarnpkg.com/en/

 

설치가 완료되었으면  vscode를 실행 시켜주세요.

vscode를 실행하면 

요런 사진이 떠요. 한글이 안되시는분들은  왼쪽에서 5번째 매뉴에서 korean으로 검색해서 한글 플러그인 설치 하시면 됩니다.

그다음 왼쪽 상단의 파일을 누르시고 폴더 열기를 눌러주세요.

원하는 위치에 폴더를 만들고  폴더 열기를 해줍니다.

다시  맨위의 메뉴중에 터미널을 클릭하시고 새 터미널을 눌러주세요. 

그러면 아래와 같이 터미널이 열려요. 그러면 아래와 같이 명령어를 입력해주세요.

 

npx create-react-app .

 

여기서 마지막에 .을 해주면 방금 만든 폴더에 리액트 프로젝트를 설치하겠다는 의미이고

만약 .말고 아무거나 단어를 쓰면 현재 폴더 안에 그 단어로 폴더가 생성되며 그 안에 프로젝트가 설치 됩니다.

편한대로 하세요 ㅎㅎ

이렇게 하면 무언가 엄청 많이 설치 됩니다.

 

마지막에 happy hacking!이라고 뜨면 패키지 설치가 완료~~

 

그럼 잘 설치 되었나 확인해볼까요?

우리는 yarn을 설치했다면 yarn start 라고 입력합니다.

만약 설치 안했으면 npm start이라고 입력하고 엔터~~~

그럼 다음과 같은 화면이 뜹니다.

 

이러면 성공입니다. 

그리고 서버를 끄고 싶다면 다시 터미널 클릭하고 컨트롤 c를 두번 누르면 실행 서버를 끌 수 있습니다.

 

다음 시간은 리액트의 핵심 기술인 컴포넌트 사용법에 대해서 알아볼게요.

'리액트' 카테고리의 다른 글

React - 조건부 랜더링 하기  (0) 2020.07.30
React - 컴포넌트 만들기  (0) 2020.07.29

+ Recent posts