본문 바로가기

구디 아카데미 수료 과정/REACT

구디아카데미 후기/ 국비지원IT개발자 취업 / 전민균 강사님/클라우드 활용 자바개발자 양성과정/•81일차/02.22

리액트  기초

 

-프로젝트는 소문자로 작성해야함   

-특수문자는 X

-첫글자는 숫자 X

-react = javascript 기반의 UI 프레임  워크임  -> 설치하지 않아도 됨

-프로젝트의 생성은 npx create-react-app [프로젝트 명]

-실행 :  cd명령어를 통해 해당프로젝트의 폴더로 들어가면 됨

            c:\react\reactapp>npm start

            "http://localhost:3000/"  Browser에서 확인

-프로젝트

 ㄴ node_modules : 사용하는 package(bootstrap, jquery 등)

 ㄴ public : 배포되는 것 (index.html)

 ㄴ src: 소스파일 react에 의해서 컴파일되어 index.html  id - root인 곳에 바인딩 된다.

         ㄴ App.js : 하위 컴포넌트를 구성하는 기본 컴포넌트

         ㄴ App.css : 전체 css를 적용

-작성방법

  ㄴ 컴포넌트는 js파일 or jsx 리액트파일로 만들면 된다.

  ㄴ 작성방법은 class 정의 방식, function  정의 방식


class 정의 방식

class Hello extends Component {
    render() {
        return (
            <div>
                {/* 전송되는 애는 꼭 <div></div 나 <> </>로 감싸줘야함 */}
                 <h1>안녕하세요</h1>
                 <div style={{color:this.props.color}}>{this.props.name}</div>
            </div>
        );
    }
}

 

export default Hello;
   {/* 이렇게 꼭 export 해줘야 함!*/}

 


function 정의 방식

 

function Hello(){

  return (
            <div>    </div> or <> </>
        )

}

export default Hello;

주석처리 방법

 

function Hello(){

               함수, 변수 등이 선언되는 부분 

            -> 자바스크립트 주석  방식   // or /* */

 

 return(              

      <>

렌더링 되는 부분    {/* 주석 */}

      </>

 );

}


컴포넌트의 사용

App.js 

import Hello from './Hello';

 

 function App(){

  return(

    <div>

       <Hello / >        <--import한걸 밝혀서 사용

     </div>

  );

}


CSS 적용

1) App.js에서 상수로 만들어 사용 방법

App.js 

import Hello from './Hello';

 

 function App(){

 //CSS는 Camel 명명법으로 작성
  //{} 바인딩을 통하여 적용
  const cssStyle ={
    backgroundColor : "black",        //background-color가 아니라 backgroundColor
    color: 'white'
  }

  return(

 

 <div style={cssStyle}>        //  react에서 변수(값)의 바인딩은 모두 "{}"문법을 사용한다.

       

     </div>

  );

}

 

2) App.css에서 작성하여 사용 방법

App.css에 다음과 같이 css를 작성하고

.circle{
  background-color: forestgreen;
  width: 50px;
  height: 50px;
  border-radius: 25px;
}

 

 

-> App.js 에  import 해서 사용

 

  return (
 
      <div className='circle'></div>          //렌더링 되는 부분에서는 className=[선택자명] 
    </>
  );

 

3) inline방식(return(내부tag작성  ->  {{}} 방식으로 작성 ))

App.js

function App(){

  return (

  <div style = {{backgroundColor:'red'}}>

 </div>

);


Props

어떠한 값을 컴포넌트에 전달할 때 사용하는 객체

 

단일 할당

 

App.js

import Hello from './Hello';

 

function App(){

  return (

        <Hello name="Props로 전달" />                  

);


Hello.js

1) Class 방식

class Hello extends Component {

 

    render() {
        return (

        <> {this.props.name}</>    <--  App.js에서 전달한 name의 값을 받음

         );

    }
}

 

2) function 방식

function Hello(props){      <-- props를 arguments로 미리 전달

  return (

  <> {props.name} </>

  );

}

 

 

 

다중 / 비구조 할당

import Hello from './Hello.js';

 

function App(){

  return (

   <Hello name="properties 전달" color="red"/>                  <--props로 2개 (name,color)전달

   );

 

 

class 다중전달

 

class Hello extends Component {
    render() {
        return (
            <div>
                 <div style={{color:this.props.color}}></div>
            </div>
        );
    }
}

 

 

function 비구조 전달

function Hello({name, color}){              <--props를 arguments로 미리 전달 
    return(
        <div style={{color:color}}>
            {name}
        </div>
    );
}

 

 

 

--Props 객체를 부모에게 전달받지 않고 각 컴포넌트가 가지고 있는 defaultProps

Hello.defaultProps={
    name:"defaultProps",
}
export default Hello;

 


Wrap

컴포넌트 감싸기 ->: 기존의 컴포넌트를 묶어서 관리

props.childeren을 통해서 호출이 가능

 

 

State

state(상태) 값은 컴포넌트 안에서 값을 업데이트 할 수 있음

상태의 변경은 useState() 후크함수로 만든다


react hook 사용방법

 -button event를 통해서 state값을 useState를 통해서 변경하여 화면 출력

 

 

useRef

ref 객체를 반환하여 DOM 노드에 접근하여 값을 전달하는 방식

->user ref 자체가 하나의 dom객체라고 이해하기


React에서 List 출력 (배열 렌더링)

 

{

  변수.map((값,index)=>{

 })

}

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

구디아카데미 후기/ 국비지원IT개발자 취업 / 전민균 강사님